Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2095365
  • 博文数量: 229
  • 博客积分: 7217
  • 博客等级: 上校
  • 技术积分: 3224
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 17:23
个人简介

个人主页https://xugaoxiang.com,微信公众号: Dev_Club 或者搜索 程序员Club

文章分类

全部博文(229)

文章存档

2017年(1)

2016年(20)

2015年(23)

2013年(1)

2012年(23)

2011年(68)

2010年(62)

2009年(31)

分类: LINUX

2011-12-21 18:57:25

Android应用程序只在有限的范围内有读取权限,如/data/data/*.*.*/,而如果想让app访问其它地方的资源时,就必须要获取更高的权限,像system或者root,root的获取方法也是基于system的,因此本文先完成system权限的获取,实际上一般的应用有system的权限基本上也够了。

1、修改apk内的AndroidManifest.xml
在manifest节点中加入android:sharedUserId="android.uid.system" 

2、编译工程产生apk文件
eclipse自动就帮你产生

3、解压缩工具打开*.apk
删除META-INF文件夹中的CERT.RSA和CERT.SF两个文件

4、给*.apk文件签名
这步需要在android源码中进行
1)cd build/tools/signapk
2)javac signapk.java(这里产生*.class)
3)mkdir test/com/android/signapk
4)cp *.class test/com/android/signapk
5)jar cvfm signapk.jar SignApk.mf -C test/ .(这里产生signapk.jar)

5、制作签名后的apk文件
1)mkdir SignApk
2)步骤4中产生的signapk.jar拷贝到SignApk文件夹中
3)cp build/target/product/security/{platform.x509.pem,platform.pk8} SignApk
4)将apk也拷贝到SignApk中
5)java -jar signapk.jar platform.x509.pem platform.pk8 *.apk new.apk

6、制作新的image文件
将new.apk导入到android源码目录中(一般是out/target/product/平台/system/app/下),编译生成新的system.img,再download到开发板

7、测试
如果app涉及到文件读写,可以待系统启动后adb shell到板子上,ls -l查看app安装目录(/data/data/*/*/*/)的权限,看看是不是变成system:system了。
阅读(15953) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~