DONGGUOLIANGNEW\edy 1 год назад
Родитель
Сommit
7c21fe72f7
3 измененных файлов с 78 добавлено и 147 удалено
  1. 78 0
      极无双酷云/script.py
  2. 0 147
      楚留香/script.py
  3. BIN
      楚留香/script.pyc

+ 78 - 0
极无双酷云/script.py

@@ -0,0 +1,78 @@
+# 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.uwa.uwascreen.CaptureScreenService' == providerName:
+                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
+                try:
+                    del provider.attrib[authorities]
+                    del provider.attrib[authoritiesTwo]
+                except:
+                    ""
+            if 'com.uwa.screenshot.mediaprojection.ScreenShotService' == 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__':
+    ""

+ 0 - 147
楚留香/script.py

@@ -1,147 +0,0 @@
-# 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_init(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
-    sdk_id = channel_sdk_info['id']
-    gw_data_center.pack_small = False
-    logging.info('script_init: ' + str(channel_sdk_info))
-
-
-def del_hjr(decompileDir):
-    hjr = os.path.join(decompileDir, 'smali_classes4/com/hjr')
-    if not os.path.exists(hjr):
-        return
-    hjr = os.path.join(decompileDir, 'smali_classes3/com/hjr')
-    if os.path.exists(hjr):
-        shutil.rmtree(hjr)
-
-
-def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
-    sdk_id = channelSdkInfo['id']
-    modify_manifest(decompileDir)
-
-
-def script_pre(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
-    sdk_id = channelSdkInfo['id']
-    if sdk_id == "549" or sdk_id == "412":
-        modify_manifest(decompileDir)
-
-
-def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
-    logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
-    if channelSdkInfo['id'] == '549':
-        del_hjr(decompileDir)
-    # smali_classes4
-    s1 = os.path.join(decompileDir, "smali_classes4", "com/netease")
-    smali_classes2_dir = create_mutil_smali(decompileDir)
-    s3 = smali_classes2_dir
-    list_package = ["game", "messiah", "mpay", "ntunisdk", "screen_recorder", "unisdk", "wyclx", ]
-    if not os.path.exists(s3):
-        distutils.dir_util.mkpath(s3)
-    move_package(s1, s3, list_package)
-
-    if channelSdkInfo['id'] == '444':
-        s1 = os.path.join(decompileDir, "smali_classes5", "com")
-        smali_classes2_dir = create_mutil_smali(decompileDir)
-        s3 = os.path.join(smali_classes2_dir, "com")
-        list_package = ["kymjs","netease"]
-        if not os.path.exists(s3):
-            distutils.dir_util.mkpath(s3)
-        move_package(s1, s3, list_package)
-
-
-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'
-    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.netease.ntunisdk.CcMomentRecordingForegroundService' == providerName:
-                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
-                try:
-                    del provider.attrib[authorities]
-                except:
-                    ""
-
-    root_node.write(xmlparse, 'utf-8')
-
-
-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)
-
-        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
-
-
-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'
-    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.netease.ntunisdk.CcMomentRecordingForegroundService' == providerName:
-                # 使用try 主要是为了 防止此属性不在时,导致的错误,而程序终止
-                try:
-                    del provider.attrib[authorities]
-                except:
-                    ""
-
-    root_node.write(xmlparse, 'utf-8')
-
-
-if __name__ == '__main__':
-    del_hjr("C:\\Users\\Administrator\\Desktop\\Shadow")

BIN
楚留香/script.pyc