2012-05-17 39 views
2

我需要修改/data/app文件夾中已有的.apk文件。修改後,簽名在Meta-INF文件夾中發生變化。所以爲了確保apk能夠正常工作,我需要用正確的md5sum來提交它們。在java中以編程方式簽署Apk文件

是否有可能通過java以編程方式退出apks,只通過代碼生成私鑰和證書?

+0

@Yury任何幫助都會很感激。 – CodeGuru

回答

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(); 
相關問題