android加固签名工具(源码下载)
背景
每次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<--
android加固签名工具(源码下载)的更多相关文章
- AForge.NET 工具源码下载
AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器 ...
- 【转】提供android 5.0 AOSP源码下载
http://blog.csdn.net/innost/article/details/41148335 android-5.0.tar.gz 115网盘礼包码:5lbcl16a1k7q http:/ ...
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- android 近百个源码项目【转】
http://www.cnblogs.com/helloandroid/articles/2385358.html Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多 ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
- Android 源码下载方法(Git 方式clone)
Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...
- android源码-安卓源码-Android源码下载-安卓游戏源码
android源码 高仿精仿金山手机卫士应用源码V1.2 高仿精仿金山手机卫士应用源码,该应用的级别实现了金山卫士的级别功能了,可以说跟现实中我们使用的金山卫士应用的功能几乎差不 人气:9286 ...
- Android中Canvas绘图基础详解(附源码下载) (转)
Android中Canvas绘图基础详解(附源码下载) 原文链接 http://blog.csdn.net/iispring/article/details/49770651 AndroidCa ...
- 第一部分:开发前的准备-第八章 Android SDK与源码下载
第8章 Android SDK与源码下载 如果你是新下载的SDK,请阅读一下步骤了解如何设置SDK.如果你已经下载使用过SDK,那么你应该使用AVD Manager,来更新即可. 下面是构建Andro ...
随机推荐
- 【nginx】关于gzip压缩
有这么一段配置文件 gzip on # 默认值: gzip off # 开启或者关闭gzip模块 gzip_static off; # nginx对于静态文件的处理模块 # 该模块可以读取预先压缩的g ...
- DNS报文格式
原文链接地址:http://blog.chinaunix.net/uid-24875436-id-3088461.html DNS报文格式(借个图贴过来): 说明一下:并不是所有DNS报文都有 ...
- Hadoop Browse the filesystem 无效处理
当我们安装好并正常运行hdfs后输入http://xxxxxxxxx:50070会进入下图所示的页面. 其中Browse the filesystem 是查看文件系统的入口. 但是在发现这个链接一直无 ...
- java PKCS7Padding 加密Cannot find any provider supporting AES/CBC/PKCS7Padding 解决办法
在java中用aes256进行加密,但是发现java里面不能使用PKCS7Padding,而java中自带的是PKCS5Padding填充,那解决办法是,通过BouncyCastle组件来让java里 ...
- cri-o 与 cni的集成分析
// 创建pod时,network的设置 1.// cri-o/server/sandbox.go // RunPodSandbox creates and runs a pod-level sand ...
- shell script 学习笔记-----命令执行
1.PATH变量:shell最主要的功能就是执行用户输入的命令,例如当用户输入一条“ls”命令之后,shell就要找到该命令对应的文件并执行.通常shell都会设置一个名叫PATH的环境变量,其中保存 ...
- tarjan算法求桥双连通分量 POJ 3177 Redundant Paths
POJ 3177 Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12598 Accept ...
- Google Map API 使用总结
Google Map API (一):显示一个最基本的地图 1 实现一个地图:<head>中引用: <script type="text/javascript" ...
- Watir、Selenium2、QTP区别
1.支持的语言 Watir:ruby Selenium2:支持多种语言,如:python,ruby,java,c#,php,perl,javascript QTP:vbscript 2.支持的浏览器 ...
- 关于audio元素在实际项目中遇到的问题总结
在ios高版本的微信浏览器下(ios10.0以上),audio标签如果添加autoplay属性的话.导致的问题是:通过二维码扫码第一次进入没有问题,第二次扫码进入之后直接卡死在loading页面. 解 ...