背景

每次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加固签名工具(源码下载)的更多相关文章

  1. AForge.NET 工具源码下载

    AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,机器 ...

  2. 【转】提供android 5.0 AOSP源码下载

    http://blog.csdn.net/innost/article/details/41148335 android-5.0.tar.gz 115网盘礼包码:5lbcl16a1k7q http:/ ...

  3. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  4. android 近百个源码项目【转】

    http://www.cnblogs.com/helloandroid/articles/2385358.html Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多 ...

  5. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  6. Android 源码下载方法(Git 方式clone)

    Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...

  7. android源码-安卓源码-Android源码下载-安卓游戏源码

    android源码   高仿精仿金山手机卫士应用源码V1.2 高仿精仿金山手机卫士应用源码,该应用的级别实现了金山卫士的级别功能了,可以说跟现实中我们使用的金山卫士应用的功能几乎差不 人气:9286  ...

  8. Android中Canvas绘图基础详解(附源码下载) (转)

    Android中Canvas绘图基础详解(附源码下载) 原文链接  http://blog.csdn.net/iispring/article/details/49770651   AndroidCa ...

  9. 第一部分:开发前的准备-第八章 Android SDK与源码下载

    第8章 Android SDK与源码下载 如果你是新下载的SDK,请阅读一下步骤了解如何设置SDK.如果你已经下载使用过SDK,那么你应该使用AVD Manager,来更新即可. 下面是构建Andro ...

随机推荐

  1. java web中日期Date类型在页面中格式化显示的三种方式

    一般我们经常需要在将服务器端的Date类型,传到页面进行显示,这就涉及到一个如何格式化显示Date类型的问题,一般我们有三种方式进行: 1)在服务端使用SimpleDateFormat等类格式化成字符 ...

  2. 【linux环境下】RabbitMq的安装和监控插件安装

    [注意安装过程中,提示某些命令not found,直接yum isntall一下就好了] 以下是我在CentOS release 6.4下亲测成功的. RabbitMq的安装:   RabbitMQ是 ...

  3. 第一次配置Android环境

    配置Android环境,相信很多人都做过,而且网上的资料也一大堆,我就来分享一下我配置Android的心得吧! 第一步:下载好需要的文件:Android SDK.JDK.Eclipse.ADT ps: ...

  4. jQuery Validate 表单验证插件----Validate简介,官方文档,官方下载地址

     一. jQuery Validate 插件的介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆 ...

  5. 设计模式C#实现(五)——抽象工厂模式

    抽象工厂模式 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类. UML类图: 场景:抽象村商店想销售Pizza和Hamburg等多种商品,而在美国店和中国店要出售本土化的口味 ...

  6. 获取tomcat上properties文件的内容——方便文件存储位置的修改,解耦和

    在java web开发的时候经常会用到读取读取或存放文件,这个文件的默认路径在哪里呢?写死在程序里面显然是可以的,但这样子不利于位于,假如有一天项目从window移植到linux,或者保存文件的路径变 ...

  7. mac 免密码登陆服务器

    由于mac os 是基于unix的操作系统终端和linux非常类似,所以不用借助类似于windows下的putty 和CRT工具即可远程登陆linux服务器,只需简单地3步即可免密码ssh远程. 1 ...

  8. java Memorymapfile demo

    String lineseperator = java.security.AccessController .doPrivileged(new sun.security.action.GetPrope ...

  9. SSH applicationContext.xml文件配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. UESTC 885 方老师买表 --状压DP

    将方格的摆放分成两种: 1.水平摆放:此时所占的两个格子都记为1. 2.竖直摆放:此时底下那个格子记为1,上面那个记为0. 这样的话,每行都会有一个状态表示. 定义:dp[i][s]表示考虑已经填到第 ...