歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android教程:應用程序獲取system權限

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了。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved