如何解决手动修改二进制AndroidManifest.xml文件
当使用协议缓冲区反序列化 Android aab 文件中的 AndroidManifest.xml 时,我注意到一个参数“resource_id”,其中包含我在 res/values 子文件夹下的任何 xml 文件中都找不到的值。
attribute {
namespace_uri: "http://schemas.android.com/apk/res/android"
name: "label"
value: "@string/app_name"
source {
line_number: 11
}
resource_id: 16842753
compiled_item {
ref {
id: 2131623963
name: "string/app_name"
}
}
}
我正在尝试手动修改 aab 文件(包括在清单文件中插入新条目或修改现有条目),如果未定义这些“resource_id”参数,则安装将无法正常工作。
我的问题是
- 这些“resource_id”和“id”参数是什么?它们的值是如何定义的?如果我手动修改清单文件,如何生成它们?
- 某些参数(例如
value: "@string/app_name"
)中包含“@”字符。当我手动重新序列化清单文件并手动添加这样的字符串时,输出清单文件将包含一个尝试转义“@”字符value: "\@string/app_name"
的字符串。但是,当 Android Studio 创建这些参数时,我没有看到这个问题。我该如何解决?
这与我之前提出的另一个问题 (Similar apktool functionality for Android aab) 有关。
感谢您对此的任何建议。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。