首页
社区
课程
招聘
[求助][求助]AndroidManifest.xml 二进制修改问题
发表于: 2015-3-24 22:06 10917

[求助][求助]AndroidManifest.xml 二进制修改问题

2015-3-24 22:06
10917
我用二进制的形式向AndroidManifest.xml的application中增加一个meta-data项,但是
安装应用装不上去,提示配置文件AndroidManifest.xml有问题:

W/PackageInstaller﹕ Parse error when parsing manifest. Discontinuing installation
W/PackageParser﹕ /storage/emulated/0/123.apk (at Binary XML file line #0): <meta- data> requires an android:value or android:resource attribute

我用aapt d xmltree 看了修改后的xml,value值是存在的,但是对应的ID不存在
 E: meta-data (line=0)
  A: android:name(0x01010003)="app_name" (Raw: "app_name")
  A: android:value="au.com.penguinapps.android.playtime.PlaytimeApplication" (Raw: "au.com.penguinapps.android.playtime.PlaytimeApplication")

这个value值必须有对应的ID,这个要怎么增加?这个ID是哪里存在的?谢谢

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 97
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0x01010003 这个ID是根据什么产生的,根据字符串中的索引吗?
2015-3-25 12:52
0
雪    币: 97
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这些ID可以通过 aapt l -a framework.apk(apktool文件夹下1.apk) 查看,都是固定的:
    resources.arsc

Resource table:
Package Groups (1)
Package Group 0 id=1 packageCount=1 name=android
  Package 0 id=1 name=android typeCount=20
    type 0 configCount=1 entryCount=1155
      spec resource 0x01010000 android:attr/theme: flags=0x40000000
      spec resource 0x01010001 android:attr/label: flags=0x40000000
      spec resource 0x01010002 android:attr/icon: flags=0x40000000
      spec resource 0x01010003 android:attr/name: flags=0x40000000
      spec resource 0x01010004 android:attr/manageSpaceActivity: flags=0x40000000
      spec resource 0x01010005 android:attr/allowClearUserData: flags=0x40000000
      spec resource 0x01010006 android:attr/permission: flags=0x40000000
      ...
      spec resource 0x01010023 android:attr/functionalTest: flags=0x40000000
      spec resource 0x01010024 android:attr/value: flags=0x40000000
      spec resource 0x01010025 android:attr/resource: flags=0x40000000
    添加value属性时,如果之前没有,就直接将resID给值0x01010024
2015-3-25 15:38
0
雪    币: 116
活跃值: (290)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
你好,请问你这个问题是否得到解决?
2017-9-4 13:51
0
雪    币: 116
活跃值: (290)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
经过折腾发现。resids的项目必须和strings中的项目对应起来,
简单的说就是有顺序限制
如图:
2017-9-4 16:08
0
雪    币: 116
活跃值: (290)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
解决思路,
开始是想以插入的方式,插入到字符串表,后发现,插入后需要调整字符串索引,工作量巨大。
所以后面选择的是修改resids使用占位的方式。
如图:
2017-9-4 16:12
0
雪    币: 24
活跃值: (57)
能力值: ( LV3,RANK:36 )
在线值:
发帖
回帖
粉丝
7
lpcdma 解决思路,开始是想以插入的方式,插入到字符串表,后发现,插入后需要调整字符串索引,工作量巨大。所以后面选择的是修改resids使用占位的方式。如图:
6楼正解,谢谢
2019-12-16 17:14
0
游客
登录 | 注册 方可回帖
返回
//