|
|
@@ -6,6 +6,7 @@ import glob
|
|
|
import shutil
|
|
|
import distutils.dir_util
|
|
|
import gw_file_system
|
|
|
+import xml.etree.ElementTree as ET
|
|
|
|
|
|
ANDROID_NS = 'http://schemas.android.com/apk/res/android'
|
|
|
|
|
|
@@ -17,11 +18,14 @@ def script(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_in
|
|
|
fixLifecycleMethod(extract_dir)
|
|
|
return
|
|
|
|
|
|
-
|
|
|
def script_pre(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
|
|
|
+ sdk_id = channel_sdk_info['id']
|
|
|
+ if sdk_id == "512" or sdk_id=="589" or sdk_id=="597" or sdk_id=="309":
|
|
|
+ modify_manifest(extract_dir)
|
|
|
+ game_mode_config = os.path.join(extract_dir, "res/xml-v22/game_mode_config.xml")
|
|
|
+ os.remove(game_mode_config)
|
|
|
return
|
|
|
|
|
|
-
|
|
|
def script_last(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
|
|
|
s1 = os.path.join(extract_dir, "smali_classes4", "com/netease")
|
|
|
smali_classes2_dir = create_mutil_smali(extract_dir)
|
|
|
@@ -166,6 +170,28 @@ def fixLifecycleMethod(preDir):
|
|
|
f.write(cont)
|
|
|
f.close()
|
|
|
|
|
|
+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__':
|
|
|
script("/tmp/ss", "/mnt/share/yanghuang/python_test/any_dir", {"id": "309"}, "", "")
|