script.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # coding:utf8
  2. import os
  3. import xml.etree.ElementTree as ET
  4. import logging
  5. import re
  6. import codecs
  7. import gw_file_system
  8. ANDROID_NAMESPACE = 'http://schemas.android.com/apk/res/android'
  9. logger = logging.getLogger('script.py')
  10. def script_second(workspace_sdk_dir, extract_dir, channel_sdk_info, new_game_channel_info, game_info):
  11. logging.info('script_second: ' + str(channel_sdk_info))
  12. # 逆向渠道id
  13. if channel_sdk_info['SDKName'] == 'yltokf':
  14. xy = "com/yl"
  15. dir_xy = os.path.join(extract_dir, "smali", xy)
  16. if os.path.exists(dir_xy):
  17. return
  18. handle_source_in_mutil_smali(extract_dir, xy)
  19. if channel_sdk_info['SDKName'] == 'xytokf':
  20. xy = "com/xy"
  21. dir_xy = os.path.join(extract_dir, "smali", xy)
  22. if os.path.exists(dir_xy):
  23. return
  24. handle_source_in_mutil_smali(extract_dir, xy)
  25. if channel_sdk_info['SDKName'] == 'smallsheep':
  26. xy = "com/kf"
  27. dir_xy = os.path.join(extract_dir, "smali", xy)
  28. if os.path.exists(dir_xy):
  29. return
  30. handle_source_in_mutil_smali(extract_dir, xy)
  31. return
  32. def handle_source_in_mutil_smali(decompileDir, source_target):
  33. f_idx = 2
  34. fist_smali_xy_dir = os.path.join(decompileDir, "smali", source_target)
  35. while True:
  36. tmp = gw_file_system.get_full_path(os.path.join(decompileDir, 'smali_classes%d' % f_idx))
  37. tmp = tmp.replace('\\', '/')
  38. tmp = re.sub('/+', '/', tmp)
  39. if os.path.exists(tmp):
  40. target_dir = os.path.join(decompileDir, tmp, source_target)
  41. logging.info(target_dir)
  42. if os.path.exists(target_dir):
  43. gw_file_system.copy_files(target_dir, fist_smali_xy_dir)
  44. gw_file_system.delete_file_folder(target_dir)
  45. f_idx += 1
  46. else:
  47. break
  48. # endwhile
  49. if __name__ == '__main__':
  50. ""
  51. # script_last('', 'E:/script_test', {}, {}, {})