Chinaunix首页 | 论坛 | 博客
  • 博客访问: 807991
  • 博文数量: 247
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 501
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-12 21:53
个人简介

系统未建立

文章分类

全部博文(247)

文章存档

2021年(1)

2020年(3)

2019年(5)

2018年(3)

2017年(44)

2016年(75)

2015年(52)

2014年(63)

2013年(1)

我的朋友

分类: LINUX

2015-01-06 14:20:44

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了。
阅读(955) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~