Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android apk 獲取系統權限的方式

Android apk 獲取系統權限的方式

編輯:關於Android編程

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))


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved