script.py 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. # coding:utf8
  2. __author__ = 'dong'
  3. import os
  4. import logging
  5. import xml.dom.minidom
  6. import re
  7. import shutil
  8. import glob
  9. import distutils.dir_util
  10. import os
  11. def script_second(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
  12. logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
  13. if channelSdkInfo['id'] == '597':
  14. logging.info("remove_navigate")
  15. remove_navigate(decompileDir)
  16. def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
  17. logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
  18. if channelSdkInfo['id'] == '597':
  19. logging.info("remove_navigate")
  20. remove_navigate(decompileDir)
  21. def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
  22. logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
  23. if channelSdkInfo['id'] == "549" or channelSdkInfo['id'] == "597":
  24. s1 = os.path.join(decompileDir, "smali_classes11/com/bytedance")
  25. if os.path.exists(s1):
  26. smali_classes_new = create_mutil_smali(decompileDir)
  27. s3 = os.path.join(decompileDir, smali_classes_new)
  28. list_package = ["module"]
  29. if not os.path.exists(s3):
  30. distutils.dir_util.mkpath(s3)
  31. move_package(s1, s3, list_package)
  32. move_11_bytedance(decompileDir, "smali_classes11")
  33. move_11_bytedance(decompileDir, "smali_classes12")
  34. s1 = os.path.join(decompileDir, "smali_classes10")
  35. if os.path.exists(s1):
  36. smali_classes_new = create_mutil_smali(decompileDir)
  37. s3 = os.path.join(decompileDir, smali_classes_new)
  38. list_package = ["com"]
  39. if not os.path.exists(s3):
  40. distutils.dir_util.mkpath(s3)
  41. move_package(s1, s3, list_package)
  42. s1 = os.path.join(decompileDir, "smali_classes11/com")
  43. if os.path.exists(s1):
  44. smali_classes_new = create_mutil_smali(decompileDir)
  45. s3 = os.path.join(decompileDir, smali_classes_new)
  46. list_package = ["bytedance"]
  47. if not os.path.exists(s3):
  48. distutils.dir_util.mkpath(s3)
  49. move_package(s1, s3, list_package)
  50. s1 = os.path.join(decompileDir, "smali_classes11/com/huawei")
  51. if os.path.exists(s1):
  52. smali_classes_new = create_mutil_smali(decompileDir)
  53. s3 = os.path.join(decompileDir, smali_classes_new)
  54. list_package = ["hms"]
  55. if not os.path.exists(s3):
  56. distutils.dir_util.mkpath(s3)
  57. move_package(s1, s3, list_package)
  58. s1 = os.path.join(decompileDir, "smali_classes11/com")
  59. if os.path.exists(s1):
  60. smali_classes_new = create_mutil_smali(decompileDir)
  61. s3 = os.path.join(decompileDir, smali_classes_new)
  62. list_package = ["huawei", "hermes", "google"]
  63. if not os.path.exists(s3):
  64. distutils.dir_util.mkpath(s3)
  65. move_package(s1, s3, list_package)
  66. s1 = os.path.join(decompileDir, "smali_classes17/com/bytedance/ttgame/module")
  67. if os.path.exists(s1):
  68. smali_classes_new = create_mutil_smali(decompileDir)
  69. s3 = os.path.join(decompileDir, smali_classes_new)
  70. list_package = ["usercenter", "voice", "vtranslate", "webview"]
  71. if not os.path.exists(s3):
  72. distutils.dir_util.mkpath(s3)
  73. move_package(s1, s3, list_package)
  74. s1 = os.path.join(decompileDir, "smali_classes40/com/bytedance/ttgame")
  75. if os.path.exists(s1):
  76. smali_classes_new = create_mutil_smali(decompileDir)
  77. s3 = os.path.join(decompileDir, smali_classes_new)
  78. list_package = ["core"]
  79. if not os.path.exists(s3):
  80. distutils.dir_util.mkpath(s3)
  81. move_package(s1, s3, list_package)
  82. move_all(decompileDir)
  83. if channelSdkInfo['id'] =="591":
  84. move_package_under_all(decompileDir, "smali_classes13","com", "lzy")
  85. def move_all(decompileDir):
  86. move_package_under_all(decompileDir, "smali_classes12", "com", "bytedance")
  87. move_package_under_all(decompileDir, "smali_classes12", "com/bytedance", "ttgame")
  88. move_package_under_all(decompileDir, "smali_classes12", "com/bytedance/ttgame", "module")
  89. move_package_under_all(decompileDir, "smali_classes12", "com/bytedance/ttgame/module", "share")
  90. move_package_under_all(decompileDir, "smali_classes14", "com", "ss")
  91. move_package_under_all(decompileDir, "smali_classes14", "com/ss", "android")
  92. move_package_under_all(decompileDir, "smali_classes14", "com/ss/android", "bytedcert")
  93. move_package_under_all(decompileDir, "smali_classes23", "com/huawei", "agconnect")
  94. move_package_under_all(decompileDir, "smali_classes6", "", "androidx")
  95. move_package_under_all(decompileDir, "smali_classes106", "com", "a")
  96. move_package_under_all(decompileDir, "smali_classes117", "com/bytedance", "android")
  97. move_package_under_all(decompileDir, "smali_classes120", "com/bytedance/apm6", "commonevent")
  98. move_package_under_all(decompileDir, "smali_classes6", "androidx", "activity")
  99. move_package_under_all(decompileDir, "smali_classes7", "com/bytedance", "common")
  100. move_package_under_all(decompileDir, "smali_classes179", "com/bytedance/frameworks", "apm")
  101. move_package_under_all(decompileDir, "smali_classes210", "com/bytedance/sdk", "account")
  102. move_package_under_all(decompileDir, "smali_classes210", "com/bytedance/sdk/account", "api")
  103. move_package_under_all(decompileDir, "smali_classes220", "com/bytedance/ttgame", "account")
  104. move_package_under_all(decompileDir, "smali_classes8", "com/bytedance/ttgame/module", "abtest")
  105. move_package_under_all(decompileDir, "smali_classes274", "com/bytedance/ttgame/module/compliance", "api")
  106. move_package_under_all(decompileDir, "smali_classes97", "com/huawei/hms", "aaid")
  107. move_package_under_all(decompileDir, "smali_classes105","com", "bytedance")
  108. move_package_under_all(decompileDir, "smali_classes105","com/bytedance", "ttgame")
  109. move_package_under_all(decompileDir, "smali_classes146","com/bytedance/frameworks", "apm")
  110. move_package_under_all(decompileDir, "smali_classes177","com/bytedance/sdk", "account")
  111. move_package_under_all(decompileDir, "smali_classes177","com/bytedance/sdk/account", "api")
  112. move_package_under_all(decompileDir, "smali_classes187","com/bytedance/ttgame", "account")
  113. move_package_under_all(decompileDir, "smali_classes198","com/bytedance/ttgame/module/compliance", "api")
  114. move_package_under_all(decompileDir, "smali_classes235","com/bytedance/apm6", "commonevent")
  115. move_package_under_all(decompileDir, "smali_classes96","com/huawei/hms", "aaid")
  116. def move_package(s1, s3, list_package):
  117. for d in list_package:
  118. src = os.path.join(s1, d)
  119. if os.path.exists(src):
  120. dst = os.path.join(s3, d)
  121. distutils.dir_util.copy_tree(src, dst)
  122. distutils.dir_util.remove_tree(src)
  123. # 移动包下面所有包
  124. def move_package_under_all(decompileDir, smali_classes, move_dir, except_dir):
  125. s1 = os.path.join(decompileDir, smali_classes, move_dir)
  126. if not os.path.exists(s1):
  127. return
  128. for name in os.listdir(s1):
  129. if name == except_dir:
  130. continue
  131. if "." in name: # 是文件
  132. continue
  133. smali_classes_new = create_mutil_smali(decompileDir)
  134. s3 = os.path.join(decompileDir, smali_classes_new, move_dir)
  135. list_package = [name]
  136. if not os.path.exists(s3):
  137. distutils.dir_util.mkpath(s3)
  138. move_package(s1, s3, list_package)
  139. def move_11_bytedance(decompileDir, smali_classes):
  140. s1 = os.path.join(decompileDir, smali_classes, "/com/bytedance")
  141. if os.path.exists(s1):
  142. smali_classes_new = create_mutil_smali(decompileDir)
  143. s3 = os.path.join(decompileDir, smali_classes_new)
  144. list_package = ["rocketapi", "wrapper_account", "wrapper_alog", "wrapper_appcloud", "wrapper_applog"]
  145. if not os.path.exists(s3):
  146. distutils.dir_util.mkpath(s3)
  147. move_package(s1, s3, list_package)
  148. s1 = os.path.join(decompileDir, smali_classes, "/com/bytedance")
  149. if os.path.exists(s1):
  150. smali_classes_new = create_mutil_smali(decompileDir)
  151. s3 = os.path.join(decompileDir, smali_classes_new)
  152. list_package = ["wrapper_download", "wrapper_encrypt", "wrapper_jsbridge", "wrapper_librarian", "wrapper_net"]
  153. if not os.path.exists(s3):
  154. distutils.dir_util.mkpath(s3)
  155. move_package(s1, s3, list_package)
  156. s1 = os.path.join(decompileDir, smali_classes, "/com/bytedance")
  157. if os.path.exists(s1):
  158. smali_classes_new = create_mutil_smali(decompileDir)
  159. s3 = os.path.join(decompileDir, smali_classes_new)
  160. list_package = ["wrapper_pangolinsdk", "wrapper_push", "wrapper_sdk_monitor", "wrapper_service_manager",
  161. "wrapper_setting_manager"]
  162. if not os.path.exists(s3):
  163. distutils.dir_util.mkpath(s3)
  164. move_package(s1, s3, list_package)
  165. s1 = os.path.join(decompileDir, smali_classes, "/com/bytedance")
  166. if os.path.exists(s1):
  167. smali_classes_new = create_mutil_smali(decompileDir)
  168. s3 = os.path.join(decompileDir, smali_classes_new)
  169. list_package = ["wrapper_share", "wrapper_smartrouter", "wrapper_utility"]
  170. if not os.path.exists(s3):
  171. distutils.dir_util.mkpath(s3)
  172. move_package(s1, s3, list_package)
  173. def create_mutil_smali(decompileDir):
  174. f_idx = 2
  175. while True:
  176. # tmp = gw_file_system.get_full_path(os.path.join(decompileDir, 'smali_classes%d' % f_idx))
  177. tmp = os.path.join(decompileDir, 'smali_classes%d' % f_idx)
  178. tmp = tmp.replace('\\', '/')
  179. tmp = re.sub('/+', '/', tmp)
  180. if os.path.exists(tmp):
  181. f_idx += 1
  182. else:
  183. smali_classes2_dir = tmp
  184. break
  185. # endwhile
  186. os.mkdir(smali_classes2_dir)
  187. return smali_classes2_dir
  188. def remove_navigate(decompileDir):
  189. tmp_res = os.path.join(decompileDir, "res", "navigation")
  190. tmp_public_xml = os.path.join(decompileDir, "res", "values", "public.xml")
  191. if os.path.exists(tmp_res):
  192. distutils.dir_util.remove_tree(tmp_res)
  193. if os.path.exists(tmp_public_xml):
  194. os.remove(tmp_public_xml)
  195. if __name__ == '__main__':
  196. # del_qihoo("C:\\Users\\Administrator\\Desktop\\zt")
  197. # remove_navigate("G:\\autopack2.0_kuaifa\\tool\\workspace\\lrs360\\13651\\extract")
  198. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes12", "com","bytedance")
  199. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes12", "com/bytedance","ttgame")
  200. # 这个可能可以不要
  201. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes12", "com/bytedance/ttgame","module")
  202. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes12", "com/bytedance/ttgame/module","share")
  203. # 14 smali 开始
  204. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes14", "com","ss")
  205. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes14", "com/ss","android")
  206. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes14", "com/ss/android","bytedcert")
  207. # 23
  208. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes23", "com/huawei","agconnect")
  209. # 6
  210. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes6", "","androidx")
  211. # 106
  212. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes106", "com","a")
  213. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes117", "com/bytedance","android")
  214. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes120", "com/bytedance/apm6","commonevent")
  215. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes6", "androidx","activity")
  216. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes7", "com/bytedance","common")
  217. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes179", "com/bytedance/frameworks","apm")
  218. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes210", "com/bytedance/sdk","account")
  219. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes210", "com/bytedance/sdk/account","api")
  220. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes220", "com/bytedance/ttgame","account")
  221. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes8", "com/bytedance/ttgame/module","abtest")
  222. # move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes274", "com/bytedance/ttgame/module/compliance","api")
  223. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes97","com/huawei/hms", "aaid")
  224. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes105","com", "bytedance")
  225. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes105","com/bytedance", "ttgame")
  226. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes146","com/bytedance/frameworks", "apm")
  227. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes177","com/bytedance/sdk", "account")
  228. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes177","com/bytedance/sdk/account", "api")
  229. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes187","com/bytedance/ttgame", "account")
  230. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes198","com/bytedance/ttgame/module/compliance", "api")
  231. #move_package_under_all("G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract", "smali_classes235","com/bytedance/apm6", "commonevent")
  232. decompileDir="G:\\autopack2.0_kuaifa\\tool\\workspace\\wlxxkp\\16075\\extract"
  233. move_package_under_all(decompileDir, "smali_classes96","com/huawei/hms", "aaid")