使用平台证书签名将撤消WRITE_EXTERNAL_STORAGE

时间:2012-12-20 14:33:53

标签: android apk

this discussion之后,我签署了一个系统应用程序,我正在使用我从制造商处收到的特定设备的专有平台证书。我签了如下:

java -jar out/host/linux-x86/framework/signapk.jar \
     build/target/product/security/platform.x509.pem \
     build/target/product/security/platform.pk8 \
     Launcher-unsigned.apk \
     Launcher-unsigned.apk
zipalign -f 4 Launcher-signed.apk Launcher.apk

我的启动器具有各种权限:

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
[snip]
<uses-permission
    android:name="android.permission.SET_PREFERRED_APPLICATIONS"
    tools:ignore="ProtectedPermissons" />

我加入了清单:

<manifest [...]
    android:sharedUserId="android.uid.system" >

以前我的应用程序会成功写入SD卡,但无法设置首选应用程序(my code similar to this),它现在不再抛出SecurityException,而是写入SD卡会抛出FileNotFoundException许可被拒绝的消息。

我的应用程序获得了一些受保护的权限,但却失去了其他一些权限,可能会发生什么?

1 个答案:

答案 0 :(得分:4)

Ricardo Cerqueira(CyanogenMod开发者)非常友好地通过Google +私下回复我:

  

系统用户无法编写外部存储。它的   实际上是唯一禁止这样做的用户。