背景
每次android加固了都要命令行簽名好麻煩,正好之前做了個圖標生成工具。
所以改了改,比寫批處理還要省事。
原理
其實就是用winform程序調用控制台執行命令,android簽名的命令如下
%JAVA_HOME%\bin\jarsigner -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore [你的keystore] -signedjar [簽名好的路徑] [要簽名的路徑] [keystore的別名]
在界面里面選擇了參數之后彈出控制台,輸入密碼就行了,非常省事(貌似密碼也可以放進參數,懶得研究了,有知道的大神求評論給出)。
界面效果
之前icon生成工具改的,簡單點就行。
icon生成的功能把ios的尺寸閹割了。
順着自上而下的步驟點擊就行。
如果你沒有在環境變量里設定JAVA_HOME參數,程序啟動會有提示,如果設定了就不需要再點擊“配置JAVA目錄”了。
如果自己配置JAVA目錄,指向JDK的根目錄就行,不要指向BIN。
關鍵源碼
一如既往的,所有源碼都有注釋。請不要挑剔命名..半個小時弄的東西。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.IO; namespace WindowsFormsApplication1.DAL { public class Signture { public static string cmdFormat = "{0}\\bin\\jarsigner"; public static string cmdStrFormat = " -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore {0} -signedjar {1} {2} {3}"; /// <summary> /// 檢查java環境 /// </summary> /// <returns></returns> public static bool isJavaEnvirSettled() { return string.IsNullOrEmpty(Environment.GetEnvironmentVariable("JAVA_HOME")); } /// <summary> /// 運行cmd命令 /// 會顯示命令窗口 /// </summary> /// <param name="cmdExe">指定應用程序的完整路徑</param> /// <param name="cmdStr">執行命令行參數</param> public static bool RunCmd(string cmdExe, string cmdStr) { bool result = false; try { using (Process myPro = new Process()) { //指定啟動進程是調用的應用程序和命令行參數 ProcessStartInfo psi = new ProcessStartInfo(cmdExe, cmdStr); myPro.StartInfo = psi; myPro.Start(); myPro.WaitForExit(); result = true; } } catch { } return result; } public static string savePath(string file) { string filePath = Path.GetDirectoryName(file); string fileName = Path.GetFileNameWithoutExtension(file); return filePath + "\\" + fileName + ".signed.apk"; } } }

private void buttonX4_Click(object sender, EventArgs e) { //執行 string align=textBox1.Text; string savedPath = DAL.Signture.savePath(apkPath); string cmd = string.Format(DAL.Signture.cmdFormat, javaPath); string cmdStr = string.Format(DAL.Signture.cmdStrFormat, keyPath, savedPath, apkPath, align); DAL.Signture.RunCmd(cmd, cmdStr); }
你還能干些啥
因為代碼已經放在這里了,而且已經滿足我自己需要了,所以等功能更新那就只有等我也用的上的時候改了。。
1.你可以開發一下腦洞簡單改改用來批量打渠道包
2.拿來執行其他的命令,比如取md5碼之類的
源碼地址:
鏈接:http://pan.baidu.com/s/1c2YAD4 密碼:uvy9
P.S.
自己在做獨立開發,希望廣結英豪,尤其是像我一樣腦子短路不用react硬拼anroid、ios原生想干點什么的朋友。App獨立開發群533838427
微信公眾號『懶文』-->lanwenapp<--