12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import file_utils
- import xml_utils
- import common_utils
- import os.path
- encoding = 'UTF-8'
- namespaces = {'android' : 'http://schemas.android.com/apk/res/android'}
- import xml.etree.ElementTree as ET
- def execute(game, sdk, config):
- if not checkConfig(config):
- return 1
- subChannel = config['subChannel']
- createJmhyProperties(game, sdk, subChannel, config)
- common_utils.changeTopApplication(game, sdk, subChannel, config, 'com.jmhy.sdk.common.BamenApplication')
- # decompliePath = file_utils.getDecompliePath(game, sdk, subChannel, config['cache'])
- # manifest = os.path.join(decompliePath, 'AndroidManifest.xml')
- # application = xml_utils.getApplicationAttr(manifest, 'name')
- # changeLauncherActivityByName(manifest,"com.jmhy.sdk.common.BamenApplication")
- return 0
- def changeLauncherActivityByName(manifest,name):
- for key in namespaces:
- ET.register_namespace(key, namespaces[key])
- tree = ET.parse(manifest)
- root = tree.getroot()
- attrName = xml_utils.getNamespacesFormat('android:name', namespaces)
- for node in root.findall('application'):
- print('node ----> ' + node.attrib[attrName])
- if node.attrib[attrName] != name:
- node.attrib[attrName] = name
- ##
- continue
- for sub in node.getchildren():
- if sub.tag != 'intent-filter':
- continue
- for sub2 in sub.getchildren():
- if (sub2.tag == 'action' and sub2.attrib[attrName] == 'android.intent.action.MAIN'):
- sub2.attrib[attrName]='lenovoid.MAIN'
- if (sub2.tag == 'category' and sub2.attrib[attrName] == 'android.intent.category.LAUNCHER'):
- sub2.attrib[attrName]='android.intent.category.DEFAULT'
- tree.write(manifest, encoding)
- return node.attrib[attrName]
- return 0
- def checkConfig(config):
- '''
- 检查配置
- '''
- if 'properties' not in config:
- print('properties not exists in config')
- return False
- properties = config['properties']
- if 'agent' not in properties or 'version' not in properties:
- print('agent or version not exists in properties')
- return False
- '''if 'appid' not in config or 'appkey' not in config:
- print('appid or appkey not exists in config')
- return False'''
- return True
- def createJmhyProperties(game, sdk, subChannel, config):
- '''
- 创建jmhy.properties
- '''
- print('create jmhy.properties')
- propValue = config['properties']
- decompliePath = file_utils.getDecompliePath(game, sdk, subChannel, config['cache'])
- properties = os.path.join(decompliePath, 'assets', 'jmhy.properties')
- content = ''
- for key in propValue:
- content = '%s%s=%s\n' % (content, key, propValue[key])
- file_utils.createFile(properties, content)
- return 0
|