DONGGUOLIANGNEW\edy 1 год назад
Родитель
Сommit
a89a2a82f7
1 измененных файлов с 54 добавлено и 0 удалено
  1. 54 0
      远征将士酷派/script.py

+ 54 - 0
远征将士酷派/script.py

@@ -0,0 +1,54 @@
+# 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_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
+    fix_coolyun_application_getinstance_null_bug(decompileDir)
+    return
+
+def fix_coolyun_application_getinstance_null_bug(decompile_dir):
+    insert_str_list = [
+        '\n\t.locals 1\n\n',
+        '\tsget-object v0, Lcom/coolyun/framework/CoolYunApplication;->application:Landroid/content/Context;\n\n',
+        '\tcheck-cast v0, Lcom/coolyun/framework/CoolYunApplication;\n\n',
+        '\treturn-object v0\n\n']
+    for dirpath, dirnames, filenames in os.walk(decompile_dir):
+        if r'com\coolyun\framework' in dirpath and 'CoolYunApplication.smali' in filenames:
+            smali_path = os.path.join(dirpath, 'CoolYunApplication.smali')
+            with open(smali_path, 'r') as f:
+                smali_str_arr = f.readlines()
+                index_str = '.method public static getInstance()Lcom/coolyun/framework/CoolYunApplication;'
+                end_method_str = '.end method'
+                insert_str = ''.join(insert_str_list)
+                on_create_index = 0
+                insert_index = 0
+                for line in smali_str_arr:
+                    if index_str in line:
+                        on_create_index = smali_str_arr.index(line)
+                        print('on_create_index', on_create_index, line)
+                        break
+                for index, value in enumerate(smali_str_arr):
+                    if index > on_create_index and end_method_str in value:
+                        insert_index = index
+                        print('insert_index', index)
+                        break
+                print(on_create_index, insert_index)
+                del smali_str_arr[on_create_index + 1:insert_index]
+                smali_str_arr.insert(on_create_index + 1, insert_str)
+            with open(smali_path, 'w') as f:
+                f.write(''.join(smali_str_arr))
+                break
+
+
+if __name__ == '__main__':
+    ""