android apk获取权限,Android apk 获取系统权限的方式
Android系統中,權限等級分為
["normal" | "dangerous"| "signature" | "signatureOrSystem"]
normal 、dangerous是一般apk都在Mainifest中聲明即可獲取的
signature必須要有系統級別的簽名才能夠獲取到
signatureOrSystem 有系統級別簽名或者有系統權限
以SET_PREFERRED_APPLICATIONS為例
使用signapk為APK簽名
addPreferredActivity需要權限 android.permission.SET_PREFERRED_APPLICATIONS(權限等級為【signature】)
使用該權限需要signapk進行簽名,所需要的工具
源碼包中
1)..\out\host\linux-x86\framework\signapk.jar
2)..\build\target\product\security\platform.pk8
3)..\build\target\product\security\platform.x509.pk8
將以上3個文件以及需要簽名的APK放到同一個目錄中
cmd -> java -jar signapk.jarplatform.x509.pem platform.pk8 LauncherDemo.apk Launcher_sign.apk
該權限以需要具有系統權限的應用,所以需要使用源碼編譯該應用
完成后可使用普通install方法安裝應用,并可使用zipalign對APK進行優化
zipalign目錄 android-sdk\tools\zipalign.exe
l? 優化對齊APK
cmd ->zipalign -v 4 old.apk new.apk
l? 驗證對齊
cmd ->zipalign -c -v 4 new.apk
以上最張輸出 Verification succesful 則表示優化對齊成功
源碼編譯APK共享系統UID
這種方法無需聲明權限SET_PREFERRED_APPLICATIONS
1)在Mainfest文件中增加
android:sharedUserId="android.uid.system"
2)Android.mk文件中增加
LOCAL_CERTIFICATE := platform
編譯完成后,使用push方式安裝應用
Android.mk:
#Copyright 2007-2008 The Android Open Source Project
LOCAL_PATH:=$(call my-dir)
include$(CLEAR_VARS)
LOCAL_SRC_FILES:= $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME:= LauncherDemo
LOCAL_CERTIFICATE:= platform
include$(BUILD_PACKAGE)
# Use thefolloing include to make our test apk.
include$(call all-makefiles-under,$(LOCAL_PATH))
原文:http://blog.csdn.net/weiwei5910/article/details/38531725
總結
以上是生活随笔為你收集整理的android apk获取权限,Android apk 获取系统权限的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android os一直唤醒,Andro
- 下一篇: android 让item满屏,Andr