我需要修改/data/app
文件夹中存在的预先存在的.apk文件。修改后,签名在Meta-INF
文件夹中更改。因此,为了确保apk正常工作,我需要使用正确的md5sum重新签名。
是否可以通过java以编程方式重新签名apks,仅通过代码生成私钥和证书?
答案 0 :(得分:2)
我正在使用Bouncy Castle和class。重新签名示例:
SignedJar bcApk = new SignedJar(
new FileOutputStream("out.apk"), signChain, signCert, signKey);
JarFile jsApk = new JarFile(new File("in.apk"));
Enumeration<JarEntry> entries = jsApk.entries();
while (entries.hasMoreElements()) {
JarEntry entry = entries.nextElement();
String name = entry.getName();
if (!entry.isDirectory() && !name.startsWith("META-INF/")) {
InputStream eis = jsApk.getInputStream(entry);
bcApk.addFileContents(name, IOUtils.toByteArray(eis));
eis.close();
}
}
jsApk.close();
bcApk.close();