Bladeren bron

一批新脚本

dongguoliang@kuaifazs.com 3 jaren geleden
bovenliggende
commit
f8bd92b0af

+ 1 - 0
.gitignore

@@ -2,3 +2,4 @@ venv/
 .idea/
 *.zip
 *.pyc
+*.apk

+ 110 - 0
全民泡泡超人酷派/script.py

@@ -0,0 +1,110 @@
+# coding:utf8
+
+__author__ = 'dong'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+import distutils.dir_util
+import os
+import gw_apk_tool
+import gw_file_system
+
+
+def script_second(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
+    logging.info("remove_navigate")
+    remove_navigate(decompileDir)
+    remove_value(decompileDir, "values-v31")
+    remove_value(decompileDir, "color-v31")
+
+
+def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    return
+
+
+def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    return
+
+
+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_11_bytedance(decompileDir):
+    s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+    smali_classes_new = create_mutil_smali(decompileDir)
+    s3 = os.path.join(decompileDir, smali_classes_new)
+    list_package = ["rocketapi", "wrapper_account", "wrapper_alog", "wrapper_appcloud", "wrapper_applog"]
+    if not os.path.exists(s3):
+        distutils.dir_util.mkpath(s3)
+    move_package(s1, s3, list_package)
+
+    s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+    smali_classes_new = create_mutil_smali(decompileDir)
+    s3 = os.path.join(decompileDir, smali_classes_new)
+    list_package = ["wrapper_download", "wrapper_encrypt", "wrapper_jsbridge", "wrapper_librarian", "wrapper_net"]
+    if not os.path.exists(s3):
+        distutils.dir_util.mkpath(s3)
+    move_package(s1, s3, list_package)
+
+    s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+    smali_classes_new = create_mutil_smali(decompileDir)
+    s3 = os.path.join(decompileDir, smali_classes_new)
+    list_package = ["wrapper_pangolinsdk", "wrapper_push", "wrapper_sdk_monitor", "wrapper_service_manager",
+                    "wrapper_setting_manager"]
+    if not os.path.exists(s3):
+        distutils.dir_util.mkpath(s3)
+    move_package(s1, s3, list_package)
+
+    s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+    smali_classes_new = create_mutil_smali(decompileDir)
+    s3 = os.path.join(decompileDir, smali_classes_new)
+    list_package = ["wrapper_share", "wrapper_smartrouter", "wrapper_utility"]
+    if not os.path.exists(s3):
+        distutils.dir_util.mkpath(s3)
+    move_package(s1, s3, list_package)
+
+
+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 remove_navigate(decompileDir):
+    tmp_res = os.path.join(decompileDir, "res", "navigation")
+    tmp_public_xml = os.path.join(decompileDir, "res", "values", "public.xml")
+    if os.path.exists(tmp_res):
+        distutils.dir_util.remove_tree(tmp_res)
+    if os.path.exists(tmp_public_xml):
+        os.remove(tmp_public_xml)
+
+
+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__':
+    # del_qihoo("C:\\Users\\Administrator\\Desktop\\zt")
+    remove_navigate("G:\\autopack2.0_kuaifa\\tool\\workspace\\lrs360\\13651\\extract")

+ 27 - 0
奥奇传说/script.py

@@ -0,0 +1,27 @@
+# -*- coding:utf-8 -*-
+__author__ = 'ALIXie'
+
+import os
+import logging
+import distutils.dir_util
+import gw_apk_tool
+
+
+def script_init(workspace_sdk_dir, extract_dir, channelSdkInfo, new_game_channel_info, game_info):
+    return
+
+
+def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
+    s1 = os.path.join(decompileDir, "smali_classes6", "com")
+    smali_classes2_dir = gw_apk_tool.create_mutil_smali(decompileDir)
+
+    s3 = smali_classes2_dir
+    list_package = ["btgame"]
+    if not os.path.exists(s3):
+        distutils.dir_util.mkpath(s3)
+    gw_apk_tool.move_package(s1, s3, list_package)
+
+
+if __name__ == "__main__":
+    ""

+ 5 - 40
奥拉星酷派/script.py

@@ -3,13 +3,8 @@ __author__ = 'ALIXie'
 
 import os
 import logging
-import re
-import gw_data_center
-import shutil
-import glob
 import distutils.dir_util
-import gw_file_system
-import gw_data_center
+import gw_apk_tool
 
 
 def script_init(workspace_sdk_dir, extract_dir, channelSdkInfo, new_game_channel_info, game_info):
@@ -18,47 +13,17 @@ def script_init(workspace_sdk_dir, extract_dir, channelSdkInfo, new_game_channel
 
 def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
     logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
-    if channelSdkInfo['id'] != '549':
-        return
-    # smali_classes4
+
+    # smali_classes6
     s1 = os.path.join(decompileDir, "smali_classes6", "com")
-    smali_classes2_dir = create_mutil_smali(decompileDir)
+    smali_classes2_dir = gw_apk_tool.create_mutil_smali(decompileDir)
 
     s3 = smali_classes2_dir
     list_package = ["btgame"]
     if not os.path.exists(s3):
         distutils.dir_util.mkpath(s3)
-    move_package(s1, s3, list_package)
-
-
-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 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)
+    gw_apk_tool.move_package(s1, s3, list_package)
 
-        if os.path.exists(tmp):
-            files = os.listdir(tmp)
-            if len(files) == 0:
-                smali_classes2_dir = tmp
-                break
-            f_idx += 1
-        else:
-            smali_classes2_dir = tmp
-            break
-    # endwhile
-    os.mkdir(smali_classes2_dir)
-    return smali_classes2_dir
 
 
 if __name__ == "__main__":

BIN
奥拉星酷派/script.pyc


BIN
奥拉星酷派/奥拉星酷派.zip


+ 49 - 0
奥特曼集结酷派/script.py

@@ -0,0 +1,49 @@
+# coding:utf8
+
+__author__ = '极无双'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+
+
+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
+    public_xml = os.path.join(extract_dir, "res/values/public.xml")
+    handle_public_xml(public_xml, "progress_text")
+    handle_public_xml(public_xml, "lebian_color")
+    handle_public_xml(public_xml, "progress_max")
+    handle_public_xml(public_xml, "progress_current")
+    handle_public_xml(public_xml, "progress_reached")
+    handle_public_xml(public_xml, "progress_unreached")
+
+    return
+
+
+def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    return
+
+
+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__':
+    replace_life_method("D:\\work\\jws")

+ 67 - 0
我本千金酷派/script.py

@@ -0,0 +1,67 @@
+# coding:utf8
+
+__author__ = 'dong'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+from xml.etree.ElementTree import ElementTree, Element
+import distutils.dir_util
+
+from xml.etree import ElementTree as ET
+
+
+def script_pre(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    logging.info("in script")
+    if channelSdkInfo['id'] == "549":
+        logging.info("in 549")
+        # loading_png9 = os.path.join(SDK, "100qu/ForRes/drawable-hdpi/loading_bg.9.png")
+        loading_png9 = os.path.join(decompileDir, "res/drawable-hdpi/loading_bg.png")
+        png_list=[
+            "res/drawable-mdpi/abc_list_pressed_holo_dark.png",
+            "res/drawable-hdpi/abc_list_pressed_holo_dark.png",
+            "res/drawable-xhdpi/abc_list_pressed_holo_dark.png",
+            "res/drawable-xxhdpi/abc_list_pressed_holo_dark.png",
+            "res/drawable-mdpi/abc_list_selector_disabled_holo_dark.png",
+            "res/drawable-hdpi/abc_list_selector_disabled_holo_dark.png",
+            "res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.png",
+            "res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.png",
+        ]
+        for p in png_list:
+            logging.info("in png_list")
+            loading_png9 = os.path.join(decompileDir, p)
+            remove_source(loading_png9)
+
+
+def remove_source(path_source):
+    logging.info(path_source)
+    if not os.path.exists(path_source):
+        logging.info("path_source_not_exits")
+        return
+    logging.info("in remove")
+    os.remove(path_source)
+
+
+def modify_xml(path_xml, name_xml):
+    root_node = ET.parse(path_xml)
+    root = root_node.getroot()
+
+    name = 'name'
+    providers = root.findall("./public/[@name='loading_bg']")
+    if providers is not None:
+        for provider in providers:
+            # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+            try:
+                root.remove(provider)
+            except:
+                ""
+
+    root_node.write(path_xml, 'utf-8')
+
+
+if __name__ == '__main__':
+    # script_pre("", "f:\\ztest", "", "", "")
+    modify_xml("G:\\autopack2.0_kuaifa\\tool\\config\\sdk4\\public.xml", "loading_bg")

+ 52 - 0
新笑傲江湖酷派/script.py

@@ -0,0 +1,52 @@
+# coding:utf8
+
+__author__ = 'tianshuqitan'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+
+
+def script_second(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+
+    if channelSdkInfo['id'] == '587':
+        progress_png = os.path.join(decompileDir, "res/drawable/progress.png")
+        if os.path.exists(progress_png):
+            os.remove(progress_png)
+    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)
+
+
+def del_coolcloud(decompileDir):
+    coolcloud = os.path.join(decompileDir, 'smali_classes3/com/coolcloud')
+    if os.path.exists(coolcloud):
+        shutil.rmtree(coolcloud)
+
+
+def replace_Theme(extract_dir):
+    goal_file = os.path.join(extract_dir, 'res/values/styles.xml')
+    print(os.path.isfile(goal_file))
+    if os.path.isfile(goal_file):
+        logging.info('method_proceed: ' + 'goal_file')
+        print(goal_file)
+        with open(goal_file, 'r+') as f:
+            cont = f.read()
+            change_str = '@android:style/Theme.Light'
+            str = '@android:style/Theme.Light.NoTitleBar'
+            cont = cont.replace(change_str, str)
+            logging.info('replace_str: ' + cont)
+        with open(goal_file, 'w+') as tf:
+            tf.write(cont)
+
+
+if __name__ == '__main__':
+    del_coolcloud("C:\\Users\\Administrator\\Desktop\\Shadow")

+ 139 - 0
极无双酷派/script.py

@@ -0,0 +1,139 @@
+# coding:utf8
+
+__author__ = '极无双'
+
+import os
+import logging
+import xml.dom.minidom
+import re
+import shutil
+import glob
+
+
+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
+    public_xml = os.path.join(extract_dir, "res/values/drawables.xml")
+    handle_public_xml(public_xml, "APKTOOL")
+
+    return
+
+
+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"
+
+    logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
+    if channelSdkInfo['SDKName'] == 'reverseforkupai':
+        del_coolcloud(decompileDir)
+    if channelSdkInfo['id'] == '549':
+        replace_life_method(decompileDir)
+
+
+def replace_life_method(extract_dir):
+    goal_file = glob.glob(os.path.join(extract_dir, 'smali*/com/taiyouxi/a3k/MainActivity.smali'))[0]
+    goal_file1 = glob.glob(os.path.join(extract_dir, 'smali*/com/yog/kothoth/utils/RequestParamUtil.smali'))[0]
+    goal_file2 = glob.glob(os.path.join(extract_dir, 'smali*/com/yog/kothoth/data/JsonResult.smali'))[0]
+    print(os.path.isfile(goal_file))
+    if os.path.isfile(goal_file):
+        logging.info('method_proceed: ' + 'goal_file')
+        print(goal_file)
+        with open(goal_file, 'r+') as f:
+            cont = f.read()
+            change_str = '.method protected onResume()V'
+            str = '.method public onResume()V\n' \
+                  'invoke-static {}, Lcom/kf/framework/SDKPluginWrapper;->onResume()V'
+            cont = cont.replace(change_str, str)
+
+            change_str_1 = '.method protected onPause()V'
+            str_1 = '.method public onPause()V\n' \
+                    'invoke-static {}, Lcom/kf/framework/SDKPluginWrapper;->onPause()V'
+            cont = cont.replace(change_str_1, str_1)
+            logging.info('replace_str: ' + cont)
+        with open(goal_file, 'w+') as tf:
+            tf.write(cont)
+    if os.path.isfile(goal_file1):
+        logging.info('method_proceed: ' + 'goal_file1')
+        print(goal_file1)
+        with open(goal_file1, 'r+') as f:
+            cont = f.read()
+            change_str = 'Lcom/hjr/gameplatform/aes/AESUtil'
+            str = 'Lcom/kf/framework/util/AESUtil'
+            cont = cont.replace(change_str, str)
+            logging.info('replace_str: ' + cont)
+        with open(goal_file1, 'w+') as tf:
+            tf.write(cont)
+
+    if os.path.isfile(goal_file2):
+        logging.info('method_proceed: ' + 'goal_file2')
+        print(goal_file2)
+        with open(goal_file2, 'r+') as f:
+            cont = f.read()
+            change_str = 'Lcom/hjr/gameplatform/aes/AESUtil'
+            str = 'Lcom/kf/framework/util/AESUtil'
+            cont = cont.replace(change_str, str)
+            logging.info('replace_str: ' + cont)
+        with open(goal_file2, 'w+') as tf:
+            tf.write(cont)
+
+
+def is_reverse_coolcloud(file):
+    with open(file, 'r+') as f:
+        file_str = f.read()
+        if 'KFSDK' in file_str:
+            return True
+        else:
+            return False
+
+
+def del_coolcloud(decompileDir):
+    smali_files = glob.glob(os.path.join(decompileDir, 'smali*/com/coolcloud/'))
+    if len(smali_files) > 1:
+        iter_smali = iter(smali_files)
+        while True:
+            try:
+                coolcloud_file_path = iter_smali.next()
+                file = os.path.join(coolcloud_file_path, 'uac/android/api/Coolcloud.smali')
+                if os.path.exists(file):
+                    logging.info('Coolcloud exits in %s' % coolcloud_file_path)
+                    if not is_reverse_coolcloud(file):
+                        logging.info("delete coolcloud in %s" % coolcloud_file_path)
+                        shutil.rmtree(coolcloud_file_path)
+                    else:
+                        pass
+                else:
+                    logging.info('Coolcloud not exits in %s' % coolcloud_file_path)
+                    shutil.rmtree(coolcloud_file_path)
+
+            except StopIteration:
+                break
+
+
+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__':
+    replace_life_method("D:\\work\\jws")

+ 70 - 2
武林闲侠酷派/script.py

@@ -14,6 +14,13 @@ import gw_apk_tool
 import gw_file_system
 
 
+def script_second(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
+    if channelSdkInfo['id'] == '597':
+        logging.info("remove_navigate")
+        remove_navigate(decompileDir)
+
+
 def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
     logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
     if channelSdkInfo['id'] == '597':
@@ -23,7 +30,17 @@ def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
 
 def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
     logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
-    if channelSdkInfo['id'] == "549":
+    if channelSdkInfo['id'] == "549" or channelSdkInfo['id'] == "597":
+        s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["module"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
+        move_11_bytedance(decompileDir)
+
         s1 = os.path.join(decompileDir, "smali_classes11/com")
         smali_classes_new = create_mutil_smali(decompileDir)
         s3 = os.path.join(decompileDir, smali_classes_new)
@@ -32,10 +49,27 @@ def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameIn
             distutils.dir_util.mkpath(s3)
         move_package(s1, s3, list_package)
 
+        
+        s1 = os.path.join(decompileDir, "smali_classes11/com/huawei")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["hms"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
+        s1 = os.path.join(decompileDir, "smali_classes11/com")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["huawei","hermes","google"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
         s1 = os.path.join(decompileDir, "smali_classes17/com/bytedance/ttgame/module")
         smali_classes_new = create_mutil_smali(decompileDir)
         s3 = os.path.join(decompileDir, smali_classes_new)
-        list_package = ["usercenter","voice","vtranslate","webview"]
+        list_package = ["usercenter", "voice", "vtranslate", "webview"]
         if not os.path.exists(s3):
             distutils.dir_util.mkpath(s3)
         move_package(s1, s3, list_package)
@@ -48,6 +82,7 @@ def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameIn
             distutils.dir_util.mkpath(s3)
         move_package(s1, s3, list_package)
 
+
 def move_package(s1, s3, list_package):
     for d in list_package:
         src = os.path.join(s1, d)
@@ -56,6 +91,39 @@ def move_package(s1, s3, list_package):
             distutils.dir_util.copy_tree(src, dst)
             distutils.dir_util.remove_tree(src)
 
+def move_11_bytedance(decompileDir):
+        s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["rocketapi","wrapper_account","wrapper_alog","wrapper_appcloud","wrapper_applog"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
+        s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["wrapper_download","wrapper_encrypt","wrapper_jsbridge","wrapper_librarian","wrapper_net"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
+        s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["wrapper_pangolinsdk","wrapper_push","wrapper_sdk_monitor","wrapper_service_manager","wrapper_setting_manager"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
+        s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
+        smali_classes_new = create_mutil_smali(decompileDir)
+        s3 = os.path.join(decompileDir, smali_classes_new)
+        list_package = ["wrapper_share","wrapper_smartrouter","wrapper_utility"]
+        if not os.path.exists(s3):
+            distutils.dir_util.mkpath(s3)
+        move_package(s1, s3, list_package)
+
 
 def create_mutil_smali(decompileDir):
     f_idx = 2

BIN
武林闲侠酷派/script.pyc


BIN
武林闲侠酷派/武林闲侠酷派.zip


+ 48 - 0
诛仙百度/script.py

@@ -0,0 +1,48 @@
+# -*- coding:utf-8 -*-
+__author__ = 'Snow'
+
+import yaml
+import os
+import logging
+
+
+def meta_constructor(loader, node):
+    value = loader.construct_mapping(node)
+    return value
+
+
+
+def script_last(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
+    logging.info('game_pack_info: ' + str(channel_sdk_info))
+    # 冰狐渠道id 521
+    # 遥望渠道id 412
+    # 齐齐乐渠道id 234
+    # 小绵羊渠道id 549
+    # 233渠道id 535
+    # 天天玩渠道id 558
+    # 坚果id 413
+    # 小七手游id 389
+    # 游戏fan id 380
+    # 零玩 id 579
+    if channel_sdk_info['SDKName'] == '2lyx' or channel_sdk_info['SDKName'] == 'lcsygame':
+        change_targetSdkVersion(extract_dir)
+
+
+def change_targetSdkVersion(dir_path):
+    yml_file = os.path.join(dir_path,'apktool.yml')
+    if not os.path.exists(yml_file):
+        logging.info(yml_file+'is not exist')
+        return
+    with open(yml_file,'r') as f:
+        yaml.add_constructor(u'tag:yaml.org,2002:brut.androlib.meta.MetaInfo', meta_constructor)
+        d = yaml.load(f)
+        print d
+        sdkInfo = d.get('sdkInfo',{})
+        sdkInfo.update({'targetSdkVersion':'22'})
+        print d
+    with open(yml_file,'w') as fl:
+        fl.write(yaml.dump(d))
+
+
+if __name__ == '__main__':
+    change_targetSdkVersion('C:\\Users\\Administrator\\Desktop\\xmy')

+ 11 - 2
迷你世界酷派/script.py

@@ -10,12 +10,20 @@ logger = logging.getLogger('script.py')
 
 ANDROID_NS = 'http://schemas.android.com/apk/res/android'
 
+
 def script_second(sdk, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
     sdk_id = channelSdkInfo["id"]
     if sdk_id == "512":
         update_applicationName(decompileDir)
-        modify_manifest(decompileDir,"requestLegacyExternalStorage")
-        modify_manifest(decompileDir,"hasFragileUserData")
+        modify_manifest(decompileDir, "requestLegacyExternalStorage")
+        modify_manifest(decompileDir, "hasFragileUserData")
+    remove_public(decompileDir)
+
+
+def remove_public(decompileDir):
+    tmp_public_xml = os.path.join(decompileDir, "res", "values", "public.xml")
+    if os.path.exists(tmp_public_xml):
+        os.remove(tmp_public_xml)
 
 
 def update_applicationName(decompileDir):
@@ -48,6 +56,7 @@ def handle_public_xml(public_xml_path, remove_node):
         f.writelines(new_lines)
     return
 
+
 def modify_manifest(decompileDir, removeKey):
     ET.register_namespace('android', ANDROID_NS)
     xmlparse = os.path.join(decompileDir, 'AndroidManifest.xml')

BIN
迷你世界酷派/迷你世界酷派.zip