2010-08-21 202 views
5

如何手动将文件添加到Android APK包中?Android:如何手动添加文件到apk?

+0

我不认为这是可能的,因为你需要重新签署apk。以及。你的意思是从编程的应用程序中,正确的 - 或者已经包的apk中,而不必重建所有东西? – 2010-08-21 01:52:21

+0

我的意思是后者 - 手动插入一个文件到一个构建的APK – zer0stimulus 2010-08-23 13:49:38

回答

6

apk是一个拉链的罐子。所以你可以使用任何操纵拉链的工具。

然而,Android平台需要对apk中的所有文件(META-INF目录中的文件除外)进行签名。因此,您需要再次致电jarsigner才能签署所有包裹。您应该再次致电zipalign

您必须使用与原始apk签名相同的密钥对已修改的apk签名。这是签名的全部内容:它表明未经签名者批准,该软件包未被篡改。 (实际上,您可以使用不同的密钥签名,但不能访问原始应用程序生成的任何数据,反之亦然。)

随Android开发套件提供的ant脚本包含自动化运行jarsigner和zipalign。

+0

它应该是'META-INF'目录被忽略,而不是MANIFEST。验证是在PackageParser.collectCertificates() – 2015-04-09 06:59:50

7

有一个名为aapt的工具与Android SDK捆绑在一起。您可以使用它在现有的apk中添加/删除/列出文件。运行aapt没有任何参数,它会打印使用说明。要添加一个文件,请使用:

aapt add MyApp.apk file1 file2 ... 
+1

中实现的您是否需要重新签名或使用zip与此对齐? – zezba9000 2013-11-08 00:18:36

+0

@ zezba9000是的,你需要重新签名和zipalign apk。 – naXa 2016-10-08 00:31:22

0

,或者你可以只打开它,插入文件,转到

META-INF>MANIFEST.MF 

获取要插入文件

SHA1 - Checksum 

将它添加到表现。

相关问题