轉載自http://www.cnblogs.com/chenbin7/archive/2013/01/10/2854768.html
想写一个重启系统的apk(reboot.apk),因为没有权限,所以编译出来的apk无法达到效果。
网上查到的方法讲的不太清楚,至少我是这么觉得,因为我照着做,试了好多次才成功。下面是我尝试过并成功的两个方法,总结如下。
方法1:通过将项目作为一个模块,放到Android系统源码中进行编译~~~
步骤如下:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入"android:sharedUserId="android.uid.system"这个属性。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" …… android:sharedUserId="android.uid.system" > <!--添加该属性--> <uses-permission android:name="android.permission.SHUTDOWN"/> <!--添加该权限--> …… </manifest>
2.编译apk
(1)将应用程序的src文件、res文件和AndroidManifest.xml文件拷贝到Android系统源码package/apps目录下
(2)编写一个Android.mk文件(最简单的方法就是拷贝其他模块中的Android.mk文件),修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
Android.mk:
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := 你的项目名 LOCAL_CERTIFICATE := platform #添加这一句 include $(BUILD_PACKAGE)
(3)mm 编译,生成apk
总结:其实就是把应用程序当作系统应用进行编译~~这样之后就会有系统权限了。