作者 pandada8987

wukongyou update

正在显示 100 个修改的文件 包含 230 行增加55 行删除

要显示太多修改。

为保证性能只显示 100 of 100+ 个文件。

... ... @@ -10,12 +10,12 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 527Agg sdk 权限配置 End -->
</permissionConfig>
<applicationConfig proxyApplication="com.stss.sdk.Wu27STSSAggApplication">
<applicationConfig proxyApplication="com.stss.sdk.Wu27AppListener">
<!-- 527Agg sdk Application配置 Start -->
<activity
android:name="com.qnAgg.sdk.qnAggDefault.QnAggGameActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent" ></activity>
android:theme="@android:style/Theme.Translucent" />
<activity
android:name="com.qnAgg.sdk.permission.PermissionUtils$PermissionActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
... ... @@ -27,6 +27,9 @@
android:alwaysRetainTaskState="true"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<meta-data
android:name="STSS_CHANNEL_APPLICATION_CLASS"
android:value="com.qnAgg.sdk.QnAggApplication" />
<!-- 527Agg sdk Application配置 End -->
</applicationConfig>
</manifest>
\ No newline at end of file
... ...
不能预览此文件类型
... ... @@ -12,8 +12,8 @@
<operation step="5" type="copyRes" from="root" to="" />
</operations>
<plugins>
<plugin name="com.stss.sdk.Wu27STSSAggUser" type="1" desc="用户登录接口"/>
<plugin name="com.stss.sdk.Wu27STSSAggPay" type="2" desc="用户支付接口"/>
<plugin name="com.stss.sdk.Wu27User" type="1" desc="用户登录接口"/>
<plugin name="com.stss.sdk.Wu27Pay" type="2" desc="用户支付接口"/>
</plugins>
<version>
<name>1688</name>
... ...
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="qnAgg_color_000000">#000000</color>
<color name="qnAgg_color_ea6e00">#ea6e00</color>
<color name="qnAgg_color_ff7800">#ff7800</color>
<color name="qnAgg_color_ffffff">#ffffff</color>
<color name="qnAgg_gray">#918F92</color>
<color name="qnAgg_login_btn_color">#E7D2AC</color>
<dimen name="qnAgg_px_1024">480.00dp</dimen>
<dimen name="qnAgg_px_105">35.00dp</dimen>
<dimen name="qnAgg_px_120">40.00dp</dimen>
<dimen name="qnAgg_px_180">60.00dp</dimen>
<dimen name="qnAgg_px_3">1.00dp</dimen>
<dimen name="qnAgg_px_30">10.00dp</dimen>
<dimen name="qnAgg_px_36">12.00dp</dimen>
<dimen name="qnAgg_px_390">130.00dp</dimen>
<dimen name="qnAgg_px_45">15.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_90">30.00dp</dimen>
<dimen name="qnAgg_px_960">320.00dp</dimen>
<string name="permission_denied_forever_message">我们需要一些权限您拒绝或系统申请失败,请您手动设置为页面授权,否则该功能无法正常使用!</string>
<string name="permission_rationale_message">您已拒绝我们的授权申请,请同意授权,否则该功能将无法正常使用!</string>
<string name="qnAgg_agree">同 意</string>
<string name="qnAgg_agreement">用户协议</string>
<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_premission_statement">本app需要如下权限及其使用说明:</string>
<string name="qnAgg_reject">不同意</string>
<string name="qnAgg_sure">确 定</string>
<string name="qnAgg_touch_agree">点击"同意"即代表您已阅读并同意上述协议及文件。</string>
<string name="qnAgg_touch_permission">点击\"同意\"即代表您已阅读并了解本应用将要使用的权限情况。</string>
<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_dialog_anim">
<item name="android:windowEnterAnimation">@anim/sevencattle_dialog_enter</item>
<item name="android:windowExitAnimation">@anim/sevencattle_dialog_exit</item>
<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>
<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_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>
<style name="qnAgg_pluginDialogStyle" parent="@android:style/Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
... ... @@ -74,9 +45,17 @@
<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>
... ...
不能预览此文件类型
... ... @@ -22,5 +22,94 @@ 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)
key = '{' + androidNS + '}name'
tree = ET.parse(manifestFile)
root = tree.getroot()
applicationNode = root.find('application')
if applicationNode is None:
return
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"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:color="@color/ht_grey" />
<item android:state_checked="true" android:color="@color/ht_white" />
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<corners android:radius="5dp"/>
<stroke android:color="@color/ht_grey_press" android:width="1dp"/>
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp"/>
<gradient android:startColor="@color/ht_grey_white"
android:endColor="@color/ht_grey_white"/>
</shape>
</item>
<item>
<shape>
<corners android:radius="5dp"/>
<stroke android:color="@color/ht_grey" android:width="1dp"/>
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp"/>
</shape>
</item>
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<corners android:radius="5dp"/>
<stroke android:color="@color/ht_second_color" android:width="1dp"/>
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp"/>
<gradient android:startColor="@color/ht_grey_white"
android:endColor="@color/ht_grey_white"/>
</shape>
</item>
<item>
<shape>
<corners android:radius="5dp"/>
<stroke android:color="@color/ht_main_color" android:width="1dp"/>
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp"/>
</shape>
</item>
</selector>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="@color/ht_btn_press" />
<corners android:radius="5dp" />
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp" />
</shape>
</item>
<item android:state_enabled="false">
<shape>
<solid android:color="@color/ht_grey_btn" />
<corners android:radius="5dp" />
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp" />
</shape>
</item>
<item>
<shape>
<solid android:color="@color/ht_btn_nomal" />
<corners android:radius="5dp" />
<padding android:bottom="1dp" android:top="1dp" android:right="1dp" android:left="1dp" />
</shape>
</item>
</selector>
\ No newline at end of file
... ...