• android加固签名工具(源码下载)


    背景

    每次android加固了都要命令行签名好麻烦,正好之前做了个图标生成工具。

    所以改了改,比写批处理还要省事。

    原理

    其实就是用winform程序调用控制台执行命令,android签名的命令如下

    %JAVA_HOME%injarsigner -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";
            }
        }
    }
    View Code
    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);
            }
    View Code

    你还能干些啥

    因为代码已经放在这里了,而且已经满足我自己需要了,所以等功能更新那就只有等我也用的上的时候改了。。

    1.你可以开发一下脑洞简单改改用来批量打渠道包

    2.拿来执行其他的命令,比如取md5码之类的

    源码地址:

    链接:http://pan.baidu.com/s/1c2YAD4 密码:uvy9

    P.S. 
    自己在做独立开发,希望广结英豪,尤其是像我一样脑子短路不用react硬拼anroid、ios原生想干点什么的朋友。

    App独立开发群533838427

    微信公众号『懒文』-->lanwenapp<--

  • 相关阅读:
    ES6(二)
    ES6
    bootstrap
    数组对象
    bootstrap
    html5(二)
    css3转换、动画、布局
    整理的一些兼容写法
    css渐变、背景、过渡、分页
    css3(一)
  • 原文地址:https://www.cnblogs.com/matoo/p/5405462.html
Copyright © 2020-2023  润新知