Android应用很容易被反编译,为了保护源码,通常都会进行混淆、加固操作,以此来增加破解难度。国内提供加固服务的公司也不少,像梆梆、爱加密、360加固都是使用者比较多的服务。我们的应用从一开始就在使用360的免费加固服务,每次发版都要登录、上传、加固、下载、重签名等操作,戳来戳去实在是麻烦,尽管360提供了客户端工具,每次都要戳来戳去我还是不大愿意的,今天抽空根据360提供的客户端工具的手册,简单写了个自动登录、加固、重签名脚本,基于Python2。
1 # coding=utf-8 2 import os 3 import subprocess 4 5 #base cmd 6 java = "java360" 7 cmd = '-jar' 8 jar = 'jiagu/jiagu.jar' 9 #login 10 cmd_login = '-login' 11 name = '' 12 pwd = '' 13 #sign 14 cmd_sign = '-importsign' 15 key_path = '' 16 key_pwd = '' 17 alise = '' 18 alise_pwd = '' 19 #jiagu 20 cmd_jiagu = '-jiagu' 21 apkTarget = '' 22 apkOutPutPath = '' 23 #autosign 24 cmd_autosign = '-autosign' 25 #showsign 26 cmd_showsign = '-showsign' 27 28 #get target apk and keystore 29 for file in os.listdir('.'): 30 if os.path.isfile(file): 31 extension = os.path.splitext(file)[1][1:] 32 if 'apk' in extension: 33 apkTarget = os.path.basename(file) 34 if "keystore" in extension: 35 key_path = os.path.basename(file) 36 37 apkOutPutPath = os.getcwd() 38 39 auto_login_cmd = [java,cmd,jar,cmd_login,name,pwd] 40 auto_importsign_cmd = [java,cmd,jar,cmd_sign,key_path,key_pwd,alise,alise_pwd] 41 auto_show_sign_cmd = [java,cmd,jar,cmd_showsign] 42 auto_jiagu_sign_cmd = [java,cmd,jar,cmd_jiagu,apkTarget,apkOutPutPath,cmd_autosign] 43 44 subprocess.call(auto_login_cmd) 45 subprocess.call(auto_importsign_cmd) 46 subprocess.call(auto_show_sign_cmd) 47 subprocess.call(auto_jiagu_sign_cmd)
line 11,12:
360账户密码
line 16,17,18
签名文件的三个秘钥(反正就是那三个
登录、导入签名秘钥只需执行一次,360会记录
此脚本需结合360提供的客户端工具中的命令行工具,其中的java执行程序是360修改的,为了方便调用复制一个命名为java360(貌似不能直接改,重签名操作需要360的java)
配置好以后将签名文件(*.keystore)和所要加固的APK拷贝至脚本同一目录,运行脚本即可,命令行会输出相关运行信息。
配置好的工程已放至Github:https://github.com/xlf2630/autoBuild
由于工程包含了360的工具包,比较大,可自行下载360工具包再拷贝Python脚本放至同一目录,作相应修改即可。