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 ...
随机推荐
- 深入探讨 Java 类加载器
转自:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 类加载器(class loader)是 Java™中的一个很重要的概念.类 ...
- cxf 消息寻址
一.消息寻址 WS-Addressing是将消息路由数据包含在SOAP头中的一种标准方法.利用WS-Addressing的消息可以在标准化的SOAP头中包含自己的包含发送元数据,而不是依赖于网络层传输 ...
- IP工具类-自己动手做个ip解析器
IP工具类-自己动手做个ip解析器 一.资料准备 导入依赖包:
- 在Myeclipse中添加User Library,用户自己的库
在Myeclipse中添加User Library,用户自己的库 作用:可以将常用的jar包添加到一个固定的库中,避免每一次都要手动导入. 步骤: 1.选择项目,点击Myeclipse的window菜 ...
- [测试] 试用Hadoop 2.2中的HDFS NFS
Hadoop 2.2中正式启用了hdfs nfs功能,使得hdfs的通用性迈进了一大步.在公司让小朋友搭建了一下,然后我自己进行了一点简单的试验,有一点收获,记录在此. 理论 使用hdfs nfs功能 ...
- [转]artDialog
本文转自:http://aui.github.io/artDialog/ http://aui.github.io/artDialog/doc/index.html artDialog —— 经典的网 ...
- [转]JQuery Ajax 在asp.net中使用总结
本文转自:http://www.cnblogs.com/acles/articles/2385648.html 自从有了JQuery,Ajax的使用变的越来越方便了,但是使用中还是会或多或少的出现一些 ...
- function [ binary,decimal ] = num2binary16( number )
function [ binary,decimal ] = num2binary16( number ) %The IEEE 754 standard specifies a binary16 as ...
- 网页中插入FLASH(swf文件),并且让Flash不遮挡HTML元素
一:网页中插入flash代码如下: 当然里面的很多属性可以去掉,根据具体的需求而定. 我们在网页中经常遇到播放flash,要正常播放flash就要用到OBJECT和EMBED这两个标签.鉴于火狐及 ...
- Linq中查询List组合相同值数量大于1
List< select g.Key).ToList();