| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # 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)
- modify_manifest_requestLegacyExternalStorage(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 + '}preserveLegacyExternalStorage'
- 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__':
- ""
|