场景:
页面上传APK包及修改的内容(修改文件固定),修改完成后提供下载链接下载。
实现步骤:
1、通过apktool工具,对APK包进行解压及打包(参考:
http://showlike.iteye.com/admin/blogs/1686103)
2、文件内容的修改
3、通过JDK的jarsigner对修改后打包的APK进行签名(参考:
http://www.tttabc.com/android/keytool-keystore-jarsigner-apk.htm)
具体实现:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* @author showlike
* @version v1.0
* 2012-6-29 下午12:05:10
*/
public class Test {
public static void main(String args[]) throws IOException{
BufferedReader br =null;
OutputStreamWriter osw =null;
Process process = null;
try {
//1----解压
//apktool路径
String path = "D:\\My Documents\\Desktop\\apktool-install-windows-r04-brut1";
//保存路径
String appPath = "F:\\document\\APK\\new\\";
File file =new File(path);
process = Runtime.getRuntime().exec("cmd.exe /c apktool d "+appPath+"iGouShop.apk "+appPath+"app",null,file);
if(process.waitFor()!=0)System.out.println("解压失败。。。");
//2----内容修改
String targetPath = appPath+"app\\res\\raw\\channel";
String content="TT201209291653";
br = new BufferedReader(new InputStreamReader(new FileInputStream(targetPath)));
while((br.readLine())!=null)
{
osw = new OutputStreamWriter(new FileOutputStream(targetPath));
osw.write(content,0,content.length());
osw.flush();
}
//3----打包
process = Runtime.getRuntime().exec("cmd.exe /c apktool b "+appPath+"app "+appPath+"app.apk",null,file);
if(process.waitFor()!=0)System.out.println("打包失败。。。");
//4----签名 (文件名称中不能包含空格)
String jdkBinPath="C:\\Program Files\\Java\\jdk1.6.0_26\\bin";
File bin =new File(jdkBinPath);
String cmd = "cmd.exe /c jarsigner -keystore F:\\document\\APK\\sdk.keystore -storepass winadsdk -signedjar "+appPath+"appT.apk "+appPath+"\\app.apk"+" sdk.keystore";
process = Runtime.getRuntime().exec(cmd,null,bin);
if(process.waitFor()!=0)System.out.println("签名失败。。。");
}catch (Exception e)
{
e.printStackTrace();
}finally{
br.close();
osw.close();
}
}
}
分享到:
相关推荐
apk解压后打包签名工具: apktool和Auto-Sign
apk签名-查看签名信息-重新签名工具三件套
uniapp打包成apk ---解压资源sdk
NULL 博文链接:https://showlike.iteye.com/blog/1688688
Apk简易工具是一个轻量级的图形用户界面应用程序,使您能够管理,签名,编译和反编译APK文件的应用程序,你正在工作。 APK简易工具是绝对免费的商业和非商业用途。 请注意:这个工具不是为新手准备的,而是为那些懒...
签名方法:到目录android\build\target\product\security找到证书文件,这里可能会有几种证书,test/shared/platform/media,各种证书使用场景不同,可以自己google一下,因为签名很快而且可任意后续更改签名,可以...
apk签名工具,自己定制个性的rom就轻而易举了!用这个签名apk文件,然后将apk安装到了模拟器中。 用的时候很简单,选择apk包,然后选择签名就可以。 1.有了这个软件,可以自己修改美化APK文件 2.用WINRAR打开APK...
apktools包含如下工具: 1.apk包的反编译工具; 2.修改代码后,可重新打包成apk; 3.将重新打包好的apk重新签名。 含使用说明README文件。 ==========亲测绝对可用===========
apk反编译及签名打包工具组5个文件,包含apk的反编译,java修改,xml修改,内置js修改,html修改,以及apk的重新签名打包。
Windows版本 Android Apk签名工具
java版的对apk进行打包的源码,需要的可以研究下
改工具就有android apk 解包、打包、签名所需的所以工具一次下载即可,下载后可以参考http://blog.csdn.net/changcsw/article/details/17420641 这里有使用的详细步骤
万能apk签名工具(APK文件修改工具)V1.00 绿色版 使用万能apk签名工具,自己定制个性的rom 就 轻而易举了!用的这个签名成功,然后将apk安装到了模拟器中。用的时候很简单,选择apk包,然后选择签名就可以。 运行它,...
安卓APK资源混淆加密重签名工具,可以对安卓APK文件的代码和资源文件进行混淆加密处理,可以对安卓APK文件进行加固,对代码和资源文件进行混淆,重新签名等功能. 可以保护APK,增加破解难度,防止误报毒等功能. ...
Apk解包,打包,重签名工具,脚本一键执行
命令为:java -jar writechanneltool.jar -sourceApk test.apk -channelFile channel.txt,test.apk为待签名apk,channel.txt为渠道信息文件,每个渠道占一行,支持#开头的注释,该工具可自动识别apk是V1还是V2签名...
因为在做安卓中文编程平台(ACP)的项目,用到了apk签名文件。这个签名工具目测和E4A相同界面哦。此源码已将-keypass 和-storepass 设置为相同密码。用到的模块:取DOS执行结果 取DOS执行结果.rar (2 KB, 下载次数:...
安卓APK资源混淆加密重签名工具,可以对安卓APK文件的代码和资源文件进行混淆加密处理,可以对安卓APK文件进行加固,对代码和资源文件进行混淆,重新签名等功能. 可以保护APK,增加破解难度,防止误报毒等功能. 主要...
对编译好的apk 文件签名,执行命令java -jar signapk.jar testkey.x509.pem testkey.pk8 未签名.apk 签名.apk
APK反組譯工具-APK-Multi-Toolv1.0.11