Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何手动将文件添加到apk?_Android - Fatal编程技术网

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

Android:如何手动将文件添加到apk?,android,Android,如何手动将文件添加到Android APK包?APK是一个jar,它是一个zip。所以你可以使用任何操纵拉链的工具 然而,还有一个更复杂的问题:Android平台要求对apk中的所有文件(除了META-INF目录中的文件)进行签名。所以你需要再次打电话签署所有包裹。然后你也应该再打电话 您必须使用与原始apk签名相同的密钥对修改后的apk进行签名。这就是签名的要点:它表明未经签名者批准,包未被篡改。(实际上,您可以使用不同的密钥进行签名,但这样您将无法访问原始应用程序生成的任何数据,反之亦然。)

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

APK是一个jar,它是一个zip。所以你可以使用任何操纵拉链的工具

然而,还有一个更复杂的问题:Android平台要求对apk中的所有文件(除了
META-INF
目录中的文件)进行签名。所以你需要再次打电话签署所有包裹。然后你也应该再打电话

您必须使用与原始apk签名相同的密钥对修改后的apk进行签名。这就是签名的要点:它表明未经签名者批准,包未被篡改。(实际上,您可以使用不同的密钥进行签名,但这样您将无法访问原始应用程序生成的任何数据,反之亦然。)


Android开发工具包提供的ant脚本包含运行jarsigner和zipalign的自动化功能。

Android SDK附带了一个名为aapt的工具。您可以使用它在现有apk中添加/删除/列出文件。在没有任何参数的情况下运行aapt,它将打印使用说明。要添加文件,请使用:

aapt add MyApp.apk file1 file2 ...

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

META-INF>MANIFEST.MF
获取要插入的文件

SHA1 - Checksum

将其添加到清单中。

我认为这是不可能的,因为您需要重新签署apk。也你的意思是从你的应用程序中以编程的方式,对吗?或者进入已经包好的apk,而不必重建一切?我的意思是后者-手动将一个文件插入到一个内置的APKDo中,你需要重新签名或使用zip对齐???@zezba9000是的,你需要重新签名并zipalign apk。它应该是
META-INF
目录被忽略,不明显。验证在PackageParser.collectCertificates()中实现