2

この議論に続いて、製造元から受け取った特定のデバイスの独自のプラットフォーム証明書を使用して、私が取り組んでいるシステム アプリに署名しました。私は次のように署名しました。

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 カードへの書き込みに成功したが、優先アプリケーションの設定に失敗していました (これに似た私のコード)、現在は SecurityException をスローしませんが、代わりに SD カードへの書き込みで FileNotFoundException をスローし、次のメッセージが表示されます。許可が拒否されました。

アプリが保護されたアクセス許可を取得したものの、他のいくつかを失った場合、何が起こる可能性がありますか?

4

1 に答える 1

4

Ricardo Cerqueira(CyanogenMod開発者)は、Google+を介して私に個人的に返信してくれてとても親切でした:

システムユーザーは、設計上、外部ストレージに書き込むことはできません。実際、そうすることを禁じられているのはこのユーザーだけです。

于 2013-01-05T00:42:11.950 に答える