作者 pandada8987

update

正在显示 59 个修改的文件 包含 792 行增加6 行删除
... ... @@ -67,6 +67,7 @@ games/
/config/sdk/zhongjian/smali/
/config/sdk/qingcheng/smali/
/config/sdk/quick/smali/
/config/sdk/669/smali/
# python打包缓存目录不需要提交
**/__pycache__/
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android" >
<permissionConfig>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</permissionConfig>
<applicationConfig >
<activity
android:name="com.jhtools.union.app.MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:screenOrientation="fullSensor">
</activity>
<meta-data android:name="stss_APPLICATION_PROXY_NAME"
android:value="com.stss.sdk.SsnAppListener" />
</applicationConfig>
</manifest>
\ No newline at end of file
... ...
不能预览此文件类型
qnAgg_GameId=qnAgg_GameId_1
qnAgg_appKey=qnAgg_appKey_987654321
qnAgg_Logcat=0
qnAgg_Req_Permission=0
... ...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import os.path
from xml.etree import ElementTree as ET
from xml.etree.ElementTree import SubElement
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import ElementTree
import os
import os.path
import zipfile
import re
import subprocess
import platform
from xml.dom import minidom
import codecs
import sys
androidNS = 'http://schemas.android.com/apk/res/android'
def execute(channel, decompileDir, packageName):
modify_manifest(channel, decompileDir)
return 0
def modify_manifest(channel,decompileDir):
manifestFile = decompileDir + "/AndroidManifest.xml"
print(manifestFile)
ET.register_namespace('android', androidNS)
key = '{' + androidNS + '}name'
tree = ET.parse(manifestFile)
root = tree.getroot()
applicationNode = root.find('application')
if applicationNode is None:
print("没有找到Application")
return
applicationNode.set(key, 'com.stss.sdk.SsnApplication')
tree.write(manifestFile)
activityNodeLst = applicationNode.findall('activity')
if activityNodeLst is None:
return
mainActivityName = ''
for activityNode in activityNodeLst:
bMain = False
intentNodeLst = activityNode.findall('intent-filter')
if intentNodeLst is None:
break
for intentNode in intentNodeLst:
bFindAction = False
bFindCategory = False
actionNodeLst = intentNode.findall('action')
if actionNodeLst is None:
break
for actionNode in actionNodeLst:
if actionNode.attrib[key] == 'android.intent.action.MAIN':
bFindAction = True
break
categoryNodeLst = intentNode.findall('category')
if categoryNodeLst is None:
break
for categoryNode in categoryNodeLst:
if categoryNode.attrib[key] == 'android.intent.category.LAUNCHER':
bFindCategory = True
break
if bFindAction and bFindCategory:
bMain = True
break
if bMain:
mainActivityName = activityNode.attrib[key]
break
if len(mainActivityName) == 0:
return
mainActivityPath = mainActivityName.replace(".", "/")
mainActivityPath = decompileDir + '/smali/' + mainActivityPath + '.smali'
f = open(mainActivityPath, 'r+', encoding='Utf-8')
mainActivityContent = str(f.read())
f.close()
fl = open(mainActivityPath, 'r+')
lines = fl.readlines()
fl.close()
superClassLine = lines[1]
superClassLine.strip()
superClassName = 'Landroid/app/Activity;'
if superClassLine.startswith(".super"):
blocks = superClassLine.split()
superClassName = blocks[len(blocks)-1]
replaceTxt = 'invoke-super {p0, p1, p2, p3}, ' + superClassName + '->onRequestPermissionsResult(I[Ljava/lang/String;[I)V'
idx = mainActivityContent.find(replaceTxt)
if idx == -1:
targetTxt = "\n.method public onRequestPermissionsResult(I[Ljava/lang/String;[I)V\n .locals 2\n\n invoke-super {p0, p1, p2, p3}, " + superClassName + "->onRequestPermissionsResult(I[Ljava/lang/String;[I)V\n\n invoke-static {p1, p2, p3}, Lcom/stss/sdk/STSSAggGame;->onRequestPermissionsResult(I[Ljava/lang/String;[I)V\n\n return-void\n.end method"
mainActivityContent = mainActivityContent + targetTxt
else:
targetTxt = " invoke-super {p0, p1, p2, p3}, " + superClassName + "->onRequestPermissionsResult(I[Ljava/lang/String;[I)V\n\n invoke-static {p1, p2, p3}, Lcom/stss/sdk/STSSAggGame;->onRequestPermissionsResult(I[Ljava/lang/String;[I)V"
mainActivityContent = mainActivityContent[:idx] + targetTxt + mainActivityContent[(idx + len(replaceTxt)):]
f2 = open(mainActivityPath, 'w', encoding='Utf-8')
f2.write(mainActivityContent)
f2.close()
return 0
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<config>
<params>
<param name="pay_notify_url" required="1" showName="NotifyUrl" desc="669 sdk game id" bWriteInManifest="0" bWriteInClient="1" />
</params>
<operations>
<operation step="1" type="mergeManifest" from="SDKManifest.xml" to="AndroidManifest.xml" />
<operation step="2" type="copyRes" from="assets" to="assets" />
<operation step="3" type="copyRes" from="libs" to="lib" />
<operation step="4" type="copyRes" from="res" to="res" />
<operation step="5" type="copyRes" from="root" to="" />
</operations>
<plugins>
<plugin name="com.stss.sdk.SsnUser" type="1" desc="用户登录接口"/>
<plugin name="com.stss.sdk.SsnPay" type="2" desc="用户支付接口"/>
</plugins>
<version>
<name>669</name>
<versionCode>1</versionCode>
<versionName>1.0.1</versionName>
</version>
</config>
\ No newline at end of file
... ...
不能预览此文件类型
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0"
android:toAlpha="1"
android:fillAfter="true"
android:fillEnabled="true"
android:duration="@android:integer/config_shortAnimTime">
</alpha>
... ...
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1"
android:toAlpha="0"
android:fillAfter="true"
android:fillEnabled="true"
android:duration="@android:integer/config_shortAnimTime">
</alpha>
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/qnAgg_color_ea6e00" />
<corners android:radius="25dp" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/qnAgg_color_ff7800" />
<corners android:radius="25dp" />
</shape>
</item>
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="@color/qnAgg_gray" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
<!--边框的宽度及颜色-->
<stroke android:width="2px" android:color="@color/qnAgg_login_btn_color" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners android:radius="12dp" />
<stroke android:width="1dp" android:color="#EFD4A9" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<stroke android:width="1dp" android:color="#000000" />
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ac000000"/>
<corners android:radius="8dp"/>
<stroke
android:width="1dp"
android:color="#5b5c61"/>
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ac000000"/>
</shape>
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp"/>
<!--<stroke-->
<!--android:width="1dp"-->
<!--android:color="#fbfbfb"/>-->
<solid android:color="@android:color/transparent"/>
</shape>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp"/>
<!--<stroke-->
<!--android:width="1dp"-->
<!--android:color="#fbfbfb"/>-->
<solid android:color="@android:color/transparent"/>
</shape>
\ No newline at end of file
... ...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/qnAgg_permission_icon"
android:layout_width="@dimen/qnAgg_px_180"
android:layout_height="@dimen/qnAgg_px_180"
android:src="@drawable/qnagg_float" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/qnAgg_permission_name"
android:layout_width="match_parent"
android:layout_height="@dimen/qnAgg_px_90"
android:text="@string/qnAgg_premission_statement"
android:textSize="@dimen/qnAgg_px_60"
android:textColor="@color/qnAgg_color_000000"/>
<TextView
android:id="@+id/qnAgg_permission_statment"
android:layout_width="match_parent"
android:layout_height="@dimen/qnAgg_px_75"
android:text="@string/qnAgg_premission_statement"
android:textSize="@dimen/qnAgg_px_45"
android:textColor="@color/qnAgg_color_000000"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/qnAgg_color_000000"
/>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<LinearLayout
android:layout_width="@dimen/qnAgg_px_1024"
android:layout_height="@dimen/qnAgg_px_960"
android:gravity="center"
android:background="@drawable/qnagg_shape_main_dialog"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_company_logo"
android:layout_width="@dimen/qnAgg_px_390"
android:layout_height="@dimen/qnAgg_px_120"
android:src="@drawable/qnagg_logo"
android:layout_gravity="center"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/qnAgg_px_30"
android:layout_marginRight="@dimen/qnAgg_px_30"
android:orientation="horizontal"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp">
<ListView
android:id="@+id/qnAgg_lv_permission"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="@dimen/qnAgg_px_390"
android:maxHeight="@dimen/qnAgg_px_390"
android:background="@drawable/qnagg_shape_permission_lv" />
</LinearLayout>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
</LinearLayout>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<TextView
android:id="@+id/qnAgg_all_permission_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/qnAgg_px_30"
android:layout_marginRight="@dimen/qnAgg_px_30"
android:textColor="@color/qnAgg_color_000000"
android:textSize="@dimen/qnAgg_px_36"
android:text="@string/qnAgg_permission_desc"/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<Button
android:id="@+id/qnAgg_btn_unAgree"
android:layout_width="wrap_content"
android:layout_height="@dimen/qnAgg_px_105"
android:background="@drawable/qnagg_shape_gray"
android:text="@string/qnAgg_reject"
android:textColor="@color/qnAgg_color_ffffff"/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<Button
android:id="@+id/qnAgg_btn_sure"
android:layout_width="wrap_content"
android:layout_height="@dimen/qnAgg_px_105"
android:background="@drawable/qnagg_selector_btn_submit"
android:text="@string/qnAgg_agree"
android:textColor="@color/qnAgg_color_000000"/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
</LinearLayout>
<View style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
</LinearLayout>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/qnAgg_layoutStyle_commonActivity"
android:gravity="center_horizontal"
android:paddingLeft="@dimen/qnAgg_px_30"
android:paddingTop="@dimen/qnAgg_px_30"
android:paddingRight="@dimen/qnAgg_px_30"
android:background="@drawable/qnagg_shape_main_dialog">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<ImageView
android:id="@+id/iv_company_logo"
android:layout_width="@dimen/qnAgg_px_180"
android:layout_height="1px"
android:src="@drawable/qnagg_logo"
android:layout_gravity="center"/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<TextView
android:id="@+id/qnAgg_tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/qnAgg_color_000000"
android:textSize="@dimen/qnAgg_px_75"
android:text="@string/qnAgg_polices"
android:gravity="center"
/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<TextView
android:id="@+id/qnAgg_tv_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/qnAgg_px_3"
android:textColor="@color/qnAgg_color_000000"
android:textSize="@dimen/qnAgg_px_45"
android:text="@string/qnAgg_agreement"
android:gravity="center"
/>
</LinearLayout>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="WebViewLayout"
android:orientation="vertical">
<WebView
android:id="@+id/qnAgg_webview"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_margin="@dimen/qnAgg_px_3"
android:background="@color/qnAgg_color_ea6e00"
android:scrollbars="none" />
</LinearLayout>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/qnAgg_color_000000"
android:textSize="@dimen/qnAgg_px_45"
android:text="@string/qnAgg_touch_agree"
/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp">
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<Button
android:id="@+id/qnAgg_btn_reject"
android:layout_width="wrap_content"
android:layout_height="@dimen/qnAgg_px_105"
android:background="@drawable/qnagg_shape_gray"
android:text="@string/qnAgg_reject"
android:textColor="@color/qnAgg_color_ffffff"/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
<Button
android:id="@+id/qnAgg_btn_agreement"
android:layout_width="wrap_content"
android:layout_height="@dimen/qnAgg_px_105"
android:background="@drawable/qnagg_selector_btn_submit"
android:text="@string/qnAgg_agree"
android:textColor="@color/qnAgg_color_000000"/>
<View
style="@style/qnAgg_vertical_empty_view"
android:layout_weight="2" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/qnAgg_splash_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/qnAgg_splash_img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fd_splash"
/>
</RelativeLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:background="@drawable/sevencattle_corners_white"
android:layout_width="280dp"
android:layout_height="200dp">
<TextView
android:id="@+id/hw_tv_quick_popupwindow_title"
android:layout_marginTop="15dp"
android:text="温馨提示"
android:textSize="17sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"/>
<View
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@android:color/darker_gray"/>
<TextView
android:gravity="center_vertical|left"
android:id="@+id/hw_tv_quick_popupwindow_info"
android:layout_marginLeft="22dp"
android:layout_marginRight="20dp"
android:layout_width="match_parent"
android:layout_height="100dp"
android:textColor="@android:color/white"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/hw_tv_quick_popupwindow_cancel"
android:gravity="center"
android:text="取消"
android:background="@drawable/sevencattle_shape_button_tourist_back"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="35dp"
android:textColor="@android:color/white"/>
<TextView
android:id="@+id/hw_tv_quick_popupwindow_ok"
android:gravity="center"
android:text="确定"
android:background="@drawable/sevencattle_shape_button_tourist_gamenow"
android:textColor="@android:color/white"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="35dp"/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="qnAgg_px_180">60.00dp</dimen>
<dimen name="qnAgg_px_90">30.00dp</dimen>
<dimen name="qnAgg_px_60">20.00dp</dimen>
<dimen name="qnAgg_px_45">15.00dp</dimen>
<dimen name="qnAgg_px_75">25.00dp</dimen>
<dimen name="qnAgg_px_960">320.00dp</dimen>
<dimen name="qnAgg_px_1024">480.00dp</dimen>
<dimen name="qnAgg_px_390">130.00dp</dimen>
<dimen name="qnAgg_px_120">40.00dp</dimen>
<dimen name="qnAgg_px_30">10.00dp</dimen>
<dimen name="qnAgg_px_36">12.00dp</dimen>
<dimen name="qnAgg_px_105">35.00dp</dimen>
<dimen name="qnAgg_px_3">1.00dp</dimen>
<string name="qnAgg_permission_desc">为保证您正常的应用体验,本应用现向你说明以上权限的使用用途。可通过手机系统的隐私设置关闭授权,但会影响部分功能的体验。请阅读并同意《隐私政策》和《用户协议》。点击“同意”即代表您已阅读并了解本应用将要使用的权限情况。</string>
<string name="qnAgg_permission_use">本应用可能需要使用以下权限:</string>
<string name="qnAgg_agreement">用户协议</string>
<string name="qnAgg_polices">隐私政策</string>
<string name="qnAgg_touch_agree">点击"同意"即代表您已阅读并同意上述协议及文件。</string>
<string name="qnAgg_touch_permission">点击\"同意\"即代表您已阅读并了解本应用将要使用的权限情况。</string>
<string name="qnAgg_reject">不同意</string>
<string name="qnAgg_agree">同 意</string>
<string name="qnAgg_sure">确 定</string>
<string name="qnAgg_premission_statement">本app需要如下权限及其使用说明:</string>
<color name="qnAgg_color_000000">#000000</color>
<color name="qnAgg_color_ea6e00">#ea6e00</color>
<color name="qnAgg_color_ffffff">#ffffff</color>
<color name="qnAgg_gray">#918F92</color>
<color name="qnAgg_login_btn_color">#E7D2AC</color>
<color name="qnAgg_color_ff7800">#ff7800</color>
<style name="qnAgg_pluginDialogStyle" parent="@android:style/Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowCloseOnTouchOutside">false</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
</style>
<!--部分界面适配,用权重空白界面填充-->
<style name="qnAgg_vertical_empty_view">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">0dp</item>
<item name="android:layout_weight">1</item>
</style>
<style name="qnAgg_layoutStyle_commonActivity">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:orientation">vertical</item>
<item name="android:background">@drawable/qnagg_shape_main_dialog</item>
</style>
</resources>
\ No newline at end of file
... ...
<resources>
<string name="permission_rationale_message">您已拒绝我们的授权申请,请同意授权,否则该功能将无法正常使用!</string>
<string name="permission_denied_forever_message">我们需要一些权限您拒绝或系统申请失败,请您手动设置为页面授权,否则该功能无法正常使用!</string>
</resources>
... ...
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="qnAgg_ActivityTranslucent">
<item name="android:background">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<!-- <item name="android:statusBarColor">@android:color/transparent</item>-->
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>
</style>
<style name="qnAgg_hw_full_screen_dialog">
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/sevencattle_dialog_background</item>
<item name="android:windowAnimationStyle">@style/qnAgg_hw_dialog_anim</item>
</style>
<style name="qnAgg_hw_dialog_anim">
<item name="android:windowEnterAnimation">@anim/sevencattle_dialog_enter</item>
<item name="android:windowExitAnimation">@anim/sevencattle_dialog_exit</item>
</style>
</resources>
... ...
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
... ...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
import os
import os.path
import json
import os
import os.path
import codecs
import sys
import channel_action
if __name__ == "__main__":
parser = argparse.ArgumentParser(u"渠道专用操作")
parser.add_argument('-c', '--channel', help=u"渠道参数", action="store", dest="channel")
parser.add_argument('-d', '--decompileDir', help=u"反编译路径", action='store', dest="decompileDir")
parser.add_argument('-p', '--packageName', help=u"应用包名", action='store', dest="packageName")
args = parser.parse_args()
# print(args)
channel = json.loads(args.channel)
channel_action.execute(channel, args.decompileDir, args.packageName)
\ No newline at end of file
... ...
... ... @@ -51,9 +51,13 @@ def modify_manifest(manifest_path):
if action is not None and action.get('{' + namespace + '}name') == 'android.intent.action.MAIN':
origin_activity_name = activity.get('{' + namespace + '}name')
print(origin_activity_name)
orientation = activity.attrib.get('{' + namespace + '}screenOrientation', "unspecified")
activity.remove(intent_filter)
tree.write(manifest_path)
manifest_add(manifest_path, tree, root, origin_activity_name)
replace_screen_orientation(orientation,manifest_path)
break
... ... @@ -80,3 +84,19 @@ def manifest_add(manifest_path, tree, root, origin_activity_name):
meta_data.set('android:value', origin_activity_name)
tree.write(manifest_path)
def replace_screen_orientation(orientation,manifest_path):
if orientation=='portrait':
with open(manifest_path, 'rt') as f:
manifest_content = f.read()
# 将所有 android:screenOrientation="portrait" 替换为 android:screenOrientation="landscape"
new_manifest_content = re.sub(r'android:screenOrientation="landscape"', 'android:screenOrientation="portrait"',
manifest_content)
# 将修改后的内容写入新的清单文件
with open(manifest_path, 'wt') as f:
f.write(new_manifest_content)
... ...
13:1.4.7:ce08072d529fe32cc25f2e1584c93756:c8223ad3e3a6fb421c28f092095f69e1
\ No newline at end of file
... ... @@ -9,6 +9,7 @@
<LinearLayout
android:layout_width="@dimen/qb_px_1024"
android:layout_height="@dimen/qb_px_960"
android:id="@+id/ll_permission"
android:background="@drawable/shape_main_dialog"
android:gravity="center"
android:orientation="vertical">
... ...
... ... @@ -21,13 +21,11 @@ import argparse
namespace = 'http://schemas.android.com/apk/res/android'
androidNS = 'http://schemas.android.com/apk/res/android'
def execute(channel, decompileDir, packageName):
modify_main_activity_smali(decompileDir)
return 0
def modify_main_activity_smali(decompileDir):
manifestFile = decompileDir + "/AndroidManifest.xml"
# manifestFile = file_utils.getFullPath(manifestFile)
ET.register_namespace('android', androidNS)
... ... @@ -40,7 +38,9 @@ def modify_main_activity_smali(decompileDir):
if applicationNode is None:
return
applicationNode.set('name', 'com.stss.sdk.ChangYouApplication')
applicationNode.set(key, 'com.stss.sdk.ChangYouApplication')
tree.write(manifestFile)
activityNodeLst = applicationNode.findall('activity')
if activityNodeLst is None:
return
... ...
... ... @@ -307,6 +307,22 @@
<param name="splash_copy_to_unity" value="0" />
</channel>
<channel>
<param name="id" value="42" />
<param name="name" value="zhongjian2" />
<param name="sdk" value="zhongjian2" />
<param name="desc" value="重剑2" />
<param name="splash" value="0" />
<param name="splash_copy_to_unity" value="0" />
</channel>
<channel>
<param name="id" value="43" />
<param name="name" value="669" />
<param name="sdk" value="669" />
<param name="desc" value="669" />
<param name="splash" value="0" />
<param name="splash_copy_to_unity" value="0" />
</channel>
<channel>
<param name="id" value="1000" />
<param name="name" value="replace-old-sevencattle" />
<param name="sdk" value="replace-old-sevencattle" />
... ...
... ... @@ -13,7 +13,7 @@
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
</permissionConfig>
<applicationConfig android:usesCleartextTraffic="true"
proxyApplication="com.stss.sdk.AiLeQuAppListener">
proxyApplication="com.stss.sdk.ZhongJian2AppListener">
<uses-library android:name="org.apache.http.legacy" android:required="false" />
<meta-data
android:name="STSS_CHANNEL_APPLICATION_CLASS"
... ...
... ... @@ -17,7 +17,7 @@
<plugin name="com.stss.sdk.ZhongJian2Pay" type="2" desc="用户支付接口"/>
</plugins>
<version>
<name>爱乐趣</name>
<name>重剑2</name>
<versionCode>1</versionCode>
<versionName>1.0.1</versionName>
</version>
... ...