【script】一个打渠道号的脚本
2014-03-27 09:30
155 查看
#!/usr/bin/env python # encoding: UTF-8 import os import sys import shutil outputdir = "E:\\apkdir" sourceDir = "E:\\apk-source" toolsDir = "E:\\apktools" jdkBinDir = "C:\\Program Files\\Java\\jdk1.7.0_21\\bin" args = sys.argv #密钥 keystore = "station.keystore" #密钥密码 password = "downjoy" #创建文件夹 if os.path.isdir(outputdir): shutil.rmtree(outputdir) os.mkdir(outputdir) apkName = args[1] #1.生成txt文件 for i in range(2, len(args)): os.mkdir(outputdir+"\\"+str(args[i])) infoFile = open(outputdir+"\\"+str(args[i])+"\\module.properties", 'w') infoFile.write('channel=%s\n' %args[i]) infoFile.close() #注意:需要在E盘根目录下放上apktools文件,E盘根目录建立文件夹"E:\apk-source",里面放入要反编译的apk文件 #2.反编译apk command ='cd '+toolsDir+' & apktool d '+sourceDir+'\\'+apkName+'.apk '+outputdir+'\\'+apkName os.system(command) for i in range(2, len(args)): #3.移动txt文件 try: boolean_raw_dir_exists = os.path.exists(outputdir+"\\"+apkName+"\\res\\raw") boolean_module_file_exists = os.path.exists(outputdir+"\\"+apkName+"\\res\\raw\\module.properties") if boolean_raw_dir_exists == True and boolean_module_file_exists == True:#raw文件夹存在,文件存在 shutil.copy(outputdir+"\\"+str(args[i])+"\\module.properties",outputdir+"\\"+apkName+"\\res\\raw\\module.properties") elif boolean_raw_dir_exists == True and boolean_module_file_exists == False:#raw文件夹存在, 文件不存在 infoFile = open(outputdir+"\\"+apkName+"\\res\\raw\\module.properties", 'w') infoFile.write('channel=%s\n' %args[i]) infoFile.close() else: os.makedirs(outputdir+"\\"+apkName+"\\res\\raw") infoFile = open(outputdir+"\\"+apkName+"\\res\\raw\\module.properties", 'w') infoFile.write('channel=%s\n' %args[i]) infoFile.close() except WindowsError: pass #4.生成apk文件 command ='cd '+toolsDir+' & apktool b '+outputdir+'\\'+apkName os.system(command) #5.移动apk文件 shutil.move(outputdir+"\\"+apkName+"\\dist\\"+apkName+".apk",outputdir+"\\"+str(args[i])) #6.删除txt文件 os.remove(outputdir+"\\"+apkName+"\\res\\raw\\module.properties") for i in range(2,len(args)): #注意需要安装java SE ,需要生成一个密钥,默认名字为downjoy.keystore command = 'cd '+jdkBinDir+' & jarsigner -verbose -keystore '+keystore+' -storepass '+password+' -keypass '+password+' -signedjar '+outputdir+'\\'+apkName+'_'+str(args[i])+'_signed.apk '+outputdir+'\\'+str(args[i])+'\\'+apkName+'.apk '+keystore +' -digestalg SHA1 -sigalg MD5withRSA' #改变工作目录到dirname os.chdir(jdkBinDir) os.system(command) #删除临时文件夹 try: shutil.rmtree(outputdir+'\\'+str(args[i])) except WindowsError: pass shutil.rmtree(outputdir+'\\'+apkName)
相关文章推荐
- sql脚本的一个用法&怎样结合script脚本的例子
- How To ... Develop A Transform Lock Script(如何开发一个变换锁脚本)
- 记录一个利用winscp script 自动上传的脚本
- 一个很有用的JAVA SCRIPT 脚本
- Script:创建一个job,通过存储过程定期删除数据的脚本
- 一个类似Python和Ruby的新型脚本语言(Orange Script)
- 由于在写oozie hive action时候script属性指定hql脚本时多写了一个斜杠导致的一个悲剧,以及解决方案
- 利用UiAutomator写一个自动遍历渠道包关键功能的脚本
- 【script】一个打包应用的脚本
- [script]判定某一个脚本是否正确执行
- 写一个简单的python脚本来返回ip地址的掩码,子网个数等
- 如何在MDT/BDD中写一个自定义的脚本(1)
- 一个shell防火墙的小脚本
- 一个监控脚本带来的Python实践和学习
- 如何实现一个脚本语言?
- 之前帮朋友写的一个小工具-征途2新浪卡全自动淘号工具+按钮精灵脚本
- 联想的3gw100的android2.37刷机脚本update-script
- .NET 动态脚本语言Script.NET系列文章汇总 非常精彩的应用举例
- (转)分享一个技巧,利用批处理调用ruby脚本(可能你为路径苦恼)
- 用Shell编程写一个能实现自动安装目录和运行游戏的脚本