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腳本放至同一目錄,作相應修改即可。