2013-07-20 69 views

回答

2

這是爲什麼?

某些權限要求您的應用程序由簽署固件的相同簽名密鑰進行簽名。

其他權限要求您的應用程序要麼使用簽署固件的相同簽名密鑰進行簽名,要麼將其安裝在系統分區上(例如由有根設備的用戶)。

普通的SDK應用程序無法擁有這些權限。不幸的是,JavaDocs沒有解釋哪些權限具有哪些要求。

如果你看一下the platform manifest,與signature這些權限作爲其android:protectionLevel允許應用程序的一部分,以保持該權限如果他們由簽署的固件相同的簽名密鑰簽名。那些system作爲android:protectionLevel的一部分可以由安裝在系統分區中的應用程序持有。

因此,舉例來說:

<!-- Required to be able to reboot the device. --> 
<permission android:name="android.permission.REBOOT" 
    android:label="@string/permlab_reboot" 
    android:description="@string/permdesc_reboot" 
    android:protectionLevel="signature|system" /> 

此權限可以通過簽署在系統分區上安裝固件相同的簽名密鑰簽名的應用程序舉行。

<!-- Required to be able to disable the device (very dangerous!). --> 
<permission android:name="android.permission.BRICK" 
    android:label="@string/permlab_brick" 
    android:description="@string/permdesc_brick" 
    android:protectionLevel="signature" /> 

此權限只能由簽署固件的相同簽名密鑰簽名的應用持有。

相關問題