DONGGUOLIANGNEW\edy преди 1 година
родител
ревизия
326b8a1922

+ 30 - 0
奇迹之剑百度/script.py

@@ -0,0 +1,30 @@
+# coding:utf8
+import os
+import logging
+ANDROID_NAMESPACE = 'http://schemas.android.com/apk/res/android'
+logger = logging.getLogger('script.py')
+
+
+def script_last(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
+    public_xml = os.path.join(extract_dir, "res/values/public.xml")
+    handle_public_xml(public_xml, "app_icon_round")
+
+def handle_public_xml(public_xml_path, remove_node):
+    if not os.path.exists(public_xml_path):
+        logging.info('public_xml is null: ' + public_xml_path)
+        return
+    new_lines = []
+    with open(public_xml_path, 'r+') as f:
+        for line in f.readlines():
+            # l = line.strip()
+            if line.find(remove_node) > -1:
+                continue
+            new_lines.append(line)
+        f.seek(0)
+        f.truncate()
+        f.writelines(new_lines)
+    return
+
+
+if __name__ == '__main__':
+    script_last('', 'E:/script_test', {}, {}, {})

+ 66 - 0
新斗罗大陆酷派/script.py

@@ -0,0 +1,66 @@
+# coding:utf8
+
+__author__ = '极无双'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+
+
+ANDROID_NS = 'http://schemas.android.com/apk/res/android'
+from xml.etree import ElementTree as ET
+
+def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    # modify_manifest(decompileDir)
+    modify_manifest_common(decompileDir, "allowNativeHeapPointerTagging")
+
+def modify_manifest(decompileDir):
+    ET.register_namespace('android', ANDROID_NS)
+    xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')
+    root_node = ET.parse(xmlparse)
+    root = root_node.getroot()
+    name = '{' + ANDROID_NS + '}name'
+    authorities = '{' + ANDROID_NS + '}foregroundServiceType'
+    authoritiesTwo = '{' + ANDROID_NS + '}requestLegacyExternalStorage'
+
+    package_name = root.attrib.get('package')
+    if package_name == None:
+        return
+    providers = root.findall('./application/service')
+    if providers != None:
+        for provider in providers:
+            providerName = provider.attrib.get(name)
+            if 'com.hbisoft.hbrecorder.ScreenRecordService' == providerName:
+                try:
+                    del provider.attrib[authorities]
+                    # del provider.attrib[authoritiesTwo]
+                except:
+                    ""
+    root_node.write(xmlparse, 'utf-8')
+
+
+def modify_manifest_common(decompileDir, removeKey):
+        ET.register_namespace('android', ANDROID_NS)
+        xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')
+        logging.info(xmlparse)
+        root_node = ET.parse(xmlparse)
+        root = root_node.getroot()
+        name = '{' + ANDROID_NS + '}name'
+        authorities = '{' + ANDROID_NS + '}' + removeKey
+        package_name = root.attrib.get('package')
+        if package_name == None:
+            return
+        providers = root.findall('./application')
+        if providers != None:
+            for provider in providers:
+                try:
+                    del provider.attrib[authorities]
+                except:
+                    ""
+        root_node.write(xmlparse, 'utf-8')
+
+if __name__ == '__main__':
+    ""

+ 4 - 6
新笑傲江湖酷派/script.py

@@ -19,15 +19,16 @@ def script_second(SDK, decompileDir, channelSdkInfo, new_game_channel_info, game
         if os.path.exists(progress_png):
             os.remove(progress_png)
     return
-
+def script_second(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    modify_manifest_common(decompileDir, "allowNativeHeapPointerTagging")
+    return
 
 def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
     logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
     if channelSdkInfo['id'] == '549':
         del_coolcloud(decompileDir)
         # replace_Theme(decompileDir)
-    if channelSdkInfo['id'] == '597':
-        modify_manifest_common(decompileDir, "allowNativeHeapPointerTagging")
+    modify_manifest_common(decompileDir, "allowNativeHeapPointerTagging")
 
 
 def del_coolcloud(decompileDir):
@@ -83,9 +84,6 @@ def modify_manifest_common(decompileDir, removeKey):
     providers = root.findall('./application')
     if providers != None:
         for provider in providers:
-            # providerName = provider.attrib.get(name)
-            # if 'com.netease.ntunisdk.CcMomentRecordingForegroundService' == providerName:
-            # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
             try:
                 del provider.attrib[authorities]
             except:

+ 90 - 0
星际52区酷派/script.py

@@ -0,0 +1,90 @@
+# coding:utf8
+
+__author__ = 'Snow'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+import distutils.dir_util
+import gw_file_system
+import gw_data_center
+
+ANDROID_NS = 'http://schemas.android.com/apk/res/android'
+from xml.etree import ElementTree as ET
+
+
+def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    modify_manifest(decompileDir)
+
+def modify_manifest(decompileDir):
+    ET.register_namespace('android', ANDROID_NS)
+    xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')
+    root_node = ET.parse(xmlparse)
+    root = root_node.getroot()
+    name = '{' + ANDROID_NS + '}name'
+    authorities = '{' + ANDROID_NS + '}foregroundServiceType'
+    authoritiesTwo = '{' + ANDROID_NS + '}requestLegacyExternalStorage'
+
+    package_name = root.attrib.get('package')
+    if package_name == None:
+        return
+    providers = root.findall('./application/service')
+    if providers != None:
+        for provider in providers:
+            providerName = provider.attrib.get(name)
+            if 'com.excelliance.lbsdk.debug.LBSdkCrashReportService' == providerName:
+                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+                try:
+                    del provider.attrib[authorities]
+                    # del provider.attrib[authoritiesTwo]
+                except:
+                    ""
+            if 'com.excelliance.lbsdk.base.AssistService' == providerName:
+                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+                try:
+                    del provider.attrib[authorities]
+                except:
+                    ""
+            if 'com.excelliance.lbsdk.base.BaseService' == providerName:
+                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+                try:
+                    del provider.attrib[authorities]
+                except:
+                    ""
+            if 'com.excelliance.lbsdk.main.BGService' == providerName:
+                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+                try:
+                    del provider.attrib[authorities]
+                except:
+                    ""
+
+    root_node.write(xmlparse, 'utf-8')
+
+
+def modify_manifest_requestLegacyExternalStorage(decompileDir):
+    ET.register_namespace('android', ANDROID_NS)
+    xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')
+    root_node = ET.parse(xmlparse)
+    root = root_node.getroot()
+    name = '{' + ANDROID_NS + '}name'
+    authorities = '{' + ANDROID_NS + '}requestLegacyExternalStorage'
+    package_name = root.attrib.get('package')
+    if package_name == None:
+        return
+    providers = root.findall('./application')
+    if providers != None:
+        for provider in providers:
+            # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+            try:
+                del provider.attrib[authorities]
+            except:
+                ""
+
+    root_node.write(xmlparse, 'utf-8')
+
+
+if __name__ == '__main__':
+    ""

+ 51 - 14
诛仙酷派/script.py

@@ -10,23 +10,16 @@ import shutil
 import glob
 
 
+ANDROID_NS = 'http://schemas.android.com/apk/res/android'
+from xml.etree import ElementTree as ET
 
-def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
-    # logging.info('------------SDK:'+SDK)
-    # logging.info('------------decompileDir:'+decompileDir)
-    # logging.info('------------channelSdkInfo:'+str(channelSdkInfo))
-    # logging.info('------------new_game_channel_info:'+str(new_game_channel_info))
-    # logging.info('------------gameInfo:'+str(gameInfo))
-    # logging.info("------rm baidu smali------")
-    # restdir = decompileDir+"/"+"smali_classes2/com/baidu/gamesdk"
-    # if os.path.exists(restdir):
-    # shutil.rmtree(restdir)
-
-    # s3 = decompileDir + "/smali_classes3"
 
+def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
     logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
     if channelSdkInfo['SDKName'] != 'reverseforkupai':
         del_coolcloud(decompileDir)
+    modify_manifest(decompileDir)
+    modify_manifest_common(decompileDir, "allowNativeHeapPointerTagging")
 
 
 def is_reverse_coolcloud(file):
@@ -58,6 +51,50 @@ def del_coolcloud(decompileDir):
 
             except StopIteration:
                 break
-if __name__ == '__main__':
-    replace_life_method("D:\\work\\jws")
+def modify_manifest(decompileDir):
+    ET.register_namespace('android', ANDROID_NS)
+    xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')
+    root_node = ET.parse(xmlparse)
+    root = root_node.getroot()
+    name = '{' + ANDROID_NS + '}name'
+    authorities = '{' + ANDROID_NS + '}foregroundServiceType'
+    authoritiesTwo = '{' + ANDROID_NS + '}requestLegacyExternalStorage'
+
+    package_name = root.attrib.get('package')
+    if package_name == None:
+        return
+    providers = root.findall('./application/service')
+    if providers != None:
+        for provider in providers:
+            providerName = provider.attrib.get(name)
+            if 'com.hbisoft.hbrecorder.ScreenRecordService' == providerName:
+                try:
+                    del provider.attrib[authorities]
+                    # del provider.attrib[authoritiesTwo]
+                except:
+                    ""
+    root_node.write(xmlparse, 'utf-8')
 
+
+def modify_manifest_common(decompileDir, removeKey):
+        ET.register_namespace('android', ANDROID_NS)
+        xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')
+        logging.info(xmlparse)
+        root_node = ET.parse(xmlparse)
+        root = root_node.getroot()
+        name = '{' + ANDROID_NS + '}name'
+        authorities = '{' + ANDROID_NS + '}' + removeKey
+        package_name = root.attrib.get('package')
+        if package_name == None:
+            return
+        providers = root.findall('./application')
+        if providers != None:
+            for provider in providers:
+                try:
+                    del provider.attrib[authorities]
+                except:
+                    ""
+        root_node.write(xmlparse, 'utf-8')
+
+if __name__ == '__main__':
+    ""

BIN
诛仙酷派/script.pyc


BIN
诛仙酷派/uv5uTK.zip


+ 20 - 72
铁杆三国酷派/script.py

@@ -19,6 +19,22 @@ ANDROID_NS = 'http://schemas.android.com/apk/res/android'
 def script_second(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
     logging.info('script_second: ' + str(channel_sdk_info))
     # 逆向渠道id
+    modify_manifest(extract_dir, "hasFragileUserData")
+    remove_value(extract_dir, "values-v31")
+    remove_value(extract_dir, "color-v31")
+
+    public_xml = os.path.join(extract_dir, "res/values/public.xml")
+    handle_public_xml(public_xml ,"m3_ref_palette_dynamic_neutral")
+    handle_public_xml(public_xml ,"m3_ref_palette_dynamic_primary")
+    handle_public_xml(public_xml ,"m3_ref_palette_dynamic_secondary")
+    handle_public_xml(public_xml ,"m3_ref_palette_dynamic_tertiary")
+    handle_public_xml(public_xml ,"m3_sys_color_dynamic_dark")
+    handle_public_xml(public_xml ,"m3_sys_color_dynamic_light")
+    handle_public_xml(public_xml ,"material_dynamic_neutral")
+    handle_public_xml(public_xml ,"material_dynamic_primary")
+    handle_public_xml(public_xml ,"material_dynamic_secondary")
+    handle_public_xml(public_xml ,"material_dynamic_tertiary")
+    handle_public_xml(public_xml ,"m3_dynamic")
     sdk_id =  channel_sdk_info['id']
     if sdk_id == "597" :#深圳 成都都是用这个id
         public_xml = os.path.join(extract_dir, "res/values/public.xml")
@@ -70,78 +86,6 @@ def handle_public_xml(public_xml_path, remove_node):
     return
 
 
-def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
-    logging.info("-----debug-----")
-
-
-def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
-    sdk_id = channelSdkInfo['id']
-    if sdk_id == "597":
-        s1 = os.path.join(decompileDir, "smali","androidx")
-        if os.path.exists(s1):
-            smali_classes2_dir = create_mutil_smali(decompileDir)
-            s3 = os.path.join(smali_classes2_dir, "androidx")
-            list_package = ["fragment", "interpolator", "legacy", "lifecycle", "loader", "localbroadcastmanager"]
-            list_package.extend(
-                ["multidex", "print", "recyclerview", "slidingpanelayout", "swiperefreshlayout", "vectordrawable",
-                 "versionedparcelable", "viewpager"])
-            if not os.path.exists(s3):
-                distutils.dir_util.mkpath(s3)
-            move_package(s1, s3, list_package)
-
-    return
-
-def create_mutil_smali(decompileDir):
-    f_idx = 2
-    while True:
-        tmp = gw_file_system.get_full_path(os.path.join(decompileDir, 'smali_classes%d' % f_idx))
-        tmp = tmp.replace('\\', '/')
-        tmp = re.sub('/+', '/', tmp)
-        if os.path.exists(tmp):
-            f_idx += 1
-        else:
-            smali_classes2_dir = tmp
-            break
-    # endwhile
-    os.mkdir(smali_classes2_dir)
-    return smali_classes2_dir
-
-
-def move_package(s1, s3, list_package):
-    for d in list_package:
-        src = os.path.join(s1, d)
-        if os.path.exists(src):
-            dst = os.path.join(s3, d)
-            distutils.dir_util.copy_tree(src, dst)
-            distutils.dir_util.remove_tree(src)
-
-
-def move_package_one(src, dst):
-    if os.path.exists(src):
-        distutils.dir_util.copy_tree(src, dst)
-        distutils.dir_util.remove_tree(src)
-
-
-change_map = {".super Landroid/app/Application;": ".super Lcom/kf/framework/KFApplication;",
-              "invoke-direct {p0}, Landroid/app/Application;-><init>()V": "invoke-direct {p0}, Lcom/kf/framework/KFApplication;-><init>()V",
-              "invoke-super {p0, p1}, Landroid/app/Application;->attachBaseContext(Landroid/content/Context;)V": "invoke-super {p0, p1}, Lcom/kf/framework/KFApplication;->attachBaseContext(Landroid/content/Context;)V",
-              "invoke-super {p0}, Landroid/app/Application;->onCreate()V": "invoke-super {p0}, Lcom/kf/framework/KFApplication;->onCreate()V", }
-
-
-def replace_super_application(decompileDir):
-    smali_files = glob.glob(
-        os.path.join(decompileDir, 'smali*/com/radical/huangshangjixiang/qh360/CoronaApplication.smali'))
-    if len(smali_files) == 1:
-        game_application_file = smali_files[0];
-        print game_application_file
-        if os.path.isfile(game_application_file):
-            with open(game_application_file, "r+") as f:
-                file_str = f.read()
-                for k, v in change_map.items():
-                    file_str = file_str.replace(k, v)
-            with open(game_application_file, "w+") as f:
-                f.write(file_str)
-
 
 def modify_manifest(decompileDir, removeKey):
     ET.register_namespace('android', ANDROID_NS)
@@ -167,6 +111,10 @@ def modify_manifest(decompileDir, removeKey):
     root_node.write(xmlparse, 'utf-8')
 
 
+def remove_value(decompileDir, remove_dir):
+    tmp_res = os.path.join(decompileDir, "res", remove_dir)
+    if os.path.exists(tmp_res):
+        distutils.dir_util.remove_tree(tmp_res)
 if __name__ == '__main__':
     # replace_super_application("D:\work\wzdq")
     modify_manifest("E:\\apk\\youhua\\youhua.zip.out", "requestLegacyExternalStorage")