AmBinaryEditor(AndroidManifest二进制修改工具介绍)
来源:互联网 发布:淘宝组装手机靠谱吗 编辑:程序博客网 时间:2024/05/29 07:30
http://ele7enxxh.com/AndroidManifest-Binary-Editor.html
AmBinaryEditor(AndroidManifest二进制修改工具介绍)
本文为AmBinaryEditor项目的使用说明。
由于一次奇怪的需求,开始研究AndroidManifest的二进制格式,继而产生了直接修改AndroidManifest二进制格式的想法。虽然代码写的乱七八糟,不过好歹也是劳动成果。
在此鸣谢:MindMac对其格式的详细分析:http://bbs.pediy.com/showthread.php?t=194206
完整代码我已经上传到github上了:https://github.com/ele7enxxh/AmBinaryEditor
vs2012,gcc均能成功编译,有相同需求的可以去下一份,下面介绍一下工具的功能和用法示例:
目前功能:
新增、修改、删除指定名字的tag或者该tag的attr
用法示例:
增加一个tag(-d选项指定新增tag的起始位置,如1表示添加在manifest节点之后;-c选项指定新增tag经过的节点数,以此确定新增tag的结尾位置):
editor tag --add activity -d 1 -c 0 -i input.xml -o output.xml
改一个tag的名字(-d选项指定要修改的tag是从manifest节点开始出现的第几个同名tag,-n选项指定tag的新名字):
ameditor tag --modify application -d 1 -n test -i input.xml -o output.xml
删除指定tag(-d选项指定要修改的tag是从manifest节点开始出现的第几个同名tag):
ameditor tag --remove application -d 1 -i input.xml -o output.xml
增加一个attr(-d选项指定要修改的tag是从manifest节点开始出现的第几个同名tag,-n选项指定attr的名字,-t选项指定attr的类型(后面会有更多介绍)-v选项指定attr的值,-r选项指定attr的属性ID(可选)):
ameditor attr --add application -d 1 -n name -t 3 -v test -i input.xml -o output.xml
修改一个attr(-n选项指定需要修改的attr,其他同上):
ameditor attr -modify application -d 1 -n name -t 3 -v new -i input.xml -o output.xml
删除一个attr(-n选项指定需要删除的attr,其他同上):
ameditor attr -remove application -d 1 -n name -i input.xml -o output.xml
attr -t选项说明:
enum{ATTR_NULL = 0,ATTR_REFERENCE = 1,ATTR_ATTRIBUTE = 2,ATTR_STRING = 3,ATTR_FLOAT = 4,ATTR_DIMENSION = 5,ATTR_FRACTION = 6,ATTR_FIRSTINT = 16,ATTR_DEC = 16,ATTR_HEX = 17,ATTR_BOOLEAN = 18,ATTR_FIRSTCOLOR = 28,ATTR_ARGB8 = 28,ATTR_RGB8 = 29,ATTR_ARGB4 = 30,ATTR_RGB4 = 31,ATTR_LASTCOLOR = 31,ATTR_LASTINT = 31,};
目前暂不支持ATTR_DIMENSION和ATTR_FRACTION类型。
2015.6.25更新
attr -r选项说明:
当你所添加的attr的name在原axml中并不存在时,必须添加-r选项指定该name的resourceid,具体的resourceid在对应 Android 源码中/frameworks/base/core/res/res/values/public.xml中可以查到,另外此处需要输入十进制数。
- AmBinaryEditor(AndroidManifest二进制修改工具介绍)
- GCC二进制工具介绍
- Binutil二进制工具集介绍
- AndroidManifest介绍
- matlab虚拟现实之工具介绍(修改)
- Android学习心得(17) --- 二进制AndroidManifest解析
- AndroidManifest属性修改
- AndroidManifest.xml乱码工具
- AndroidManifest.xml反编译工具
- AndroidManifest.xml介绍
- AndroidManifest.xml介绍
- AndroidManifest.xml 的介绍
- AndroidManifest.xml 介绍 2
- AndroidManifest.xml介绍
- AndroidManifest文件介绍
- AndroidManifest.xml介绍
- 【转】AndroidManifest.xml介绍
- AndroidManifest.xml介绍
- KissXML的使用
- 理解java垃圾回收机制
- 11.3.4节练习
- 第九周项目一深复制体验(2)
- android 程序中取消标题栏
- AmBinaryEditor(AndroidManifest二进制修改工具介绍)
- HibernateTemplate的一些常用方法总结《转》
- mysql limit 优化
- CodeForces 659 C. Tanya and Toys
- POJ 1273 Drainage Ditches (最大流)
- studio快捷键
- 最短路径问题的相关算法
- Codeforces #3 A Shortest path of the king
- 指数函数方法