怎么给修改后的apk重新签名?

电脑教程012

怎么给修改后的apk重新签名?,第1张

1、首先我们要对apk文件进行改名与后缀,将其连同后缀一起改掉,如1.zip。

2、这时文件就变成一个zip压缩包了,可提取解压这个压缩包,打开这个解压的文件,会看到里面构成程序文件的很多东西,然后根据网上教程对程序进行简要修改。

(当然如果要反编译的话就不是这样子了,不过直接解压也是可以修改很多东西的),这里修改操作建议在电脑端完成比较方便,修改后重新将这些文件压缩成zip格式。

3、下载安装ZipSigner手机签名工具,并打开。

4、点击输入,浏览文件目录找到刚修改好并重新压缩的zip文件,在输出选项可以修改其名称,然后点击签名,模式为auto-testkey就可以了,等一会就签名未完成了。

apk文件结构:

1、META-INF\(注:Jar文件中常可以看到)。

2、res\(注:存放资源文件的目录)。

3、AndroidManifest.xml(注:程序全局配置文件)。

4、classes.dex(注:Dalvik字节码)。

5、resources.arsc(注:编译后的二进制资源文件)。

首先搭建jdk环境。

下载完后,点击安装。然后设置运行环境参数:

用鼠标右击“我的电脑”->属性->高级->环境变量

系统变量->新建->变量名:JAVA_HOME变量值:D:\ProgramFiles\Java\jdk1.7.0(这是我的安装

路径这个不是固定的,比如你安装到C:\ProgramFiles,就填C:\ProgramFiles\Java\jdk1.7.0)

系统变量->编辑->变量名:Path在变量值的最前面加上:%JAVA_HOME%\bin(若已经有Path

项,无须另外新建,直接在后面加,但需用与前面已有的项分隔开)

系统变量->新建->变量名:CLASSPATH变量值:

.%JAVA_HOME%\lib%JAVA_HOME%\lib\dt.jar%JAVA_HOME%\lib\tools.jar

最后测试下环境变量是否设置成功

点开始菜单-运行-在这里输入cmd-回车-输入javac

如果出现如下信息:

用法:javac<选项><源文件>

其中,可能的选项包括:

-g 生成所有调试信息

-g:none 不生成任何调试信息

-g:{lines,vars,source} 只生成某些调试信息

-nowarn 不生成任何警告

-verbose 输出有关编译器正在执行的操作的消息

-deprecation输出使用已过时的API的源位置

-classpath<路径> 指定查找用户类文件的位置

-cp<路径> 指定查找用户类文件的位置

-sourcepath<路径> 指定查找输入源文件的位置

-bootclasspath<路径>覆盖引导类文件的位置

-extdirs<目录> 覆盖安装的扩展目录的位置

-endorseddirs<目录>覆盖签名的标准路径的位置

-d<目录> 指定存放生成的类文件的位置

-encoding<编码> 指定源文件使用的字符编码

-source<版本> 提供与指定版本的源兼容性

-target<版本> 生成特定VM版本的类文件

-version 版本信息

-help输出标准选项的提要

-X 输出非标准选项的提要

-J<标志> 直接将<标志>传递给运行时系统

恭喜,你的Java环境变量配置成功了!

2.如果出现:

'javac'不是内部或外部命令,也不是可运行的程序

或批处理文件。

说明这Java环境变量配置出错了,仔细检查下吧!

当我们有需求对原apk更改签名时,可采用如下方式

有key的可跳到第2步,没有的在android studio中新建key

用rar等软件打开apk文件,然后删除“META-INF”文件夹即可。

其中 -keystore 后面是自己的key名称;

-storepass 和 -keypass 对应上面新建key的两个密码;

-signedjar 第一个参数是添加签名后的apk名称,后面是原apk名称;

key0 是上面新建key的Alias名称;

-tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp 是为了添加时间戳,添加该选项 需要联网 。

执行后显示如下

执行

显示已验证

正常连接上数据线可直接安装