场景:
页面上传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打包解包工具"是一类用于处理APK文件的实用程序,它们可以帮助开发者进行APK的构建、拆解、修改和重新签名等操作。下面将详细阐述相关知识点: 1. **APK打包**:APK打包过程是将Android应用的所有资源(如Java...
1. 解压“apk反编译编译签名工具包.rar”到本地。 2. 将待处理的APK文件放置在同一目录下。 3. 运行批处理脚本,该脚本会自动执行反编译、编译和签名的流程。 4. 完成后,生成的已签名APK会在指定目录下找到。 这个...
- **Apktool**: 尽管不是JAR包,但Apktool是一个流行的开源工具,可以解压、反编译、重新打包APK,其依赖的JAR包如`apktool.jar`可以用于Java项目。 - **dexlib2**或**JD-GUI**: 这些库可以帮助你读取和理解.dex文件...
3. **apktool工具**:apktool是一个开源的Android反编译工具,用于解压、修改和重新打包APK。它可以帮助我们修改APK的资源文件,比如XML、图片等,以便添加或替换渠道信息。 4. **aapt工具**:aapt是Android Asset ...
它能解析APK中的资源文件(如XML布局、图片等),并将其转换为人类可读的形式,同时也可以重新打包和签名APK,从而实现对原应用的修改和定制。 1. **Apktool的安装与配置** 在Windows环境下,首先需要下载Apktool...
`jar`或`apk`安装签名源程序涉及到两个主要工具:`jarsigner`和`apksign`,以及可能用到的自定义签名工具如`SignJarUtil`。 首先,`jarsigner`是Java SDK中的一个命令行工具,用于对`.jar`文件进行数字签名。签名的...
这会将APK解压到指定的`output_directory`,其中包含了所有的资源文件和DEX文件。 4. **查看资源文件**: 在反编译后的目录中,你可以找到`res`目录,里面包含了应用的所有资源,如布局文件(XML)、图片、字符串等...
5. **修改与打包**:对源代码或资源进行修改后,使用Apktool重新打包,并使用签名工具重新签名APK,以便在设备上安装。 需要注意的是,反编译行为可能涉及法律问题,特别是未经许可对他人软件进行反编译。因此,在...
如果你想重新打包并签名APK,可以使用`apktool b`命令。 除了jd-gui和apktool,压缩包中还提到了`apktool.jar`,这是apktool的可执行JAR文件,用于在命令行中运行apktool命令。`aapt`(Android Asset Packaging ...
IPA转apk工具的工作原理主要是解压IPA文件,提取其中的.app文件,然后使用特定的方法将其转换为Android可识别的Dalvik虚拟机(DEX)格式,同时处理资源文件和清单文件以适应Android环境。最后,将所有内容重新打包...
3. **apktool**:这是一个强大的APK反编译工具,可以解压APK,反编译XML文件,以及重新打包和签名。它特别适用于解析资源文件、布局、图片和其他非Java代码部分。 下面是使用这些工具进行APK反编译的步骤: 1. **...
5. 如有修改,使用apktool重新打包并签名,生成新的APK。 请注意,虽然这些工具对学习和研究APK的结构非常有用,但未经授权的反编译和修改可能涉及侵犯软件知识产权,因此在使用时应遵守相关法律法规。在合法范围内...
- **Frida**:动态代码插桩工具,可以在运行时查看和修改APK的行为,适合分析运行时的逻辑和函数调用。 2. **反编译步骤**: - **提取APK**:使用解压工具将APK文件解压成ZIP格式。 - **解析资源**:使用Apktool...
1. **解压APK**:使用任何常规的压缩工具(如7-Zip或WinRAR)将APK文件解压成一个文件夹。 2. **使用apktool**:运行Apktool命令,解析APK的资源文件,如`apktool d your.apk -o output_folder`,这会在output_...
通常,用户需要先下载并解压工具,然后按照工具提供的指引,选择待处理的APK文件,进行反编译、修改、编译和签名等操作。对于复杂的应用场景,网上还有许多详细的使用教程和社区讨论可供参考。 6. **注意事项** ...
1. **提取APK**:使用文件管理器或命令行工具将APK文件解压为ZIP格式。 2. **反编译DEX**:使用dex2jar将`.dex`文件转换为`.jar`,然后用JD-GUI或Procyon查看源代码。 3. **资源解包**:用Apktool分析并解包资源文件...
在Android应用开发中,"apk出包脚本.zip" 提供了一个使用Python进行自动化反编译、修改参数、签名和重新打包APK的过程。这个流程是开发者为了提高效率,减少手动操作而创建的自动化工具链。以下是这个过程涉及的关键...
使用`apktool d <apk_file>`命令,将APK解压到当前目录下,生成一个与APK同名的目录,其中包含反编译后的文件。 3. **查看反编译结果:** 进入生成的目录,你可以看到`res`目录下的资源文件和`smali`目录下的...
APK 反编译工具是Android开发者或者逆向工程师常用的一种技术手段,它允许我们查看、修改甚至重新打包APK应用。在这个过程中,涉及到的主要工具有apktool、dex2jar和jd-gui。 首先,我们要了解APK的结构。APK是...