在代码中对apk文件重签名
来源:互联网 发布:ubuntu ssh连接服务器 编辑:程序博客网 时间:2024/05/24 16:13
废话不说,上代码:
public static boolean signApk(String sourcePath, String targetPath, String key,String passwd, String alias) {if (sourcePath == null || targetPath == null || passwd == null|| key == null)return false;File file = new File(sourcePath);if (!file.exists())return false;file=new File(key);if(!file.exists())return false;String cmd = "jarsigner -verbose -keystore " + key + " -signedjar " + targetPath + " " + sourcePath + " " + alias;Process process=null;try {process = Runtime.getRuntime().exec(cmd);OutputStream outputStream = process.getOutputStream();outputStream.write(passwd.getBytes());outputStream.close();InputStream inputStream = process.getInputStream();InputStreamReader reader = new InputStreamReader(inputStream);BufferedReader bufferedReader = new BufferedReader(reader);String line = null;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);if(line.contains("incorrect"))return false;}bufferedReader.close();} catch (IOException e) {e.printStackTrace();return false;}return true;}
sourcePath是要签名的apk路径,targetPath是签名后生成的文件路径,key为使用的keystore路径,passwd为keystore对应的密码,alias是keystore的别名。
如果不知道怎么获取alias,可以使用下面的代码,alias可以在工程根目录下的alias.txt中查看:
public static void getAlias(String key, String passwd){String cmd = "cmd.exe /c keytool -list -v -keystore "+key+" -storepass "+passwd+" > ./alias.txt";try {Process process=null;process= Runtime.getRuntime().exec(cmd);if (process != null) {InputStream inputStream = process.getErrorStream();InputStreamReader reader = new InputStreamReader(inputStream);BufferedReader bufferedReader = new BufferedReader(reader);String line = null;while ((line = bufferedReader.readLine()) != null) {System.out.println(line);}bufferedReader.close();reader.close();inputStream.close();process.destroy();}} catch (IOException e) {e.printStackTrace();}}
其中keytool同样是JDK下的工具,这里直接使用了,所以也需要实现配置好JAVA_HOME。
0 0
- 在代码中对apk文件重签名
- 对APK进行重签名
- 如何重签名APK文件
- 使用命令对apk重签名
- V1 V2(7.0) apk文件重签名
- 在gradle中配置apk的签名文件keystore
- 学用awk, 在linux下对android apk 重签名、安装一条龙
- 学用awk, 在linux下对android apk 重签名、安装一条龙
- Unity3D对apk反编译、重编译、重签名
- Android 在代码中安装 APK 文件
- (转载)重新对APK文件签名
- 如何对apk文件进行签名
- 如何对apk文件进行签名
- Unity中对Apk签名验证
- 使用命令行对APK签名(已有签名文件)
- Android 用signkey.jks签名文件对 Apk 进行签名
- 重签名apk
- Robotium重签名APK
- Cocos2d-x3.1利用ClippingNode实现标题闪亮特效
- hdu-oj 1205 吃糖果
- 广西南宁兆嘉商贸有限责任公司简介
- [POJ1088]滑雪
- 我国加大对网络版权保护力度
- 在代码中对apk文件重签名
- POJ1006
- Linux GCC编译使用动态、静态链接库
- sdfsdfsdf
- hdu 4941 map结构体的用法
- OCP 1Z0 053 239
- 杭电 1754 I Hate It(线段树求最值)
- 文件结束符EOF
- 自己做一个android平台(3)