あなたの携帯電話を台無しにする可能性が高いので、以下を行う前にあなたのものをバックアップしてください。
一言で言えば、一部のアプリケーションでは、ユーザー情報が/data/system/packages.list
にスペース区切りの値として格納される傾向がありますが、他のアプリケーションではユーザー情報が/data/system/packages.xml
にXML形式で格納される傾向があります。これに加えて、端末に見られる所有権は、これらのファイルをどのように見ているかとは少し違って見えます。たとえば、私の電話では、WhatsappはUnixユーザu0_a70で、XMLエントリではuserId = "10070"と識別されます。
2つの全く異なるデータセットを見ている2つのスクリプトを必要とするため、ユーザーの許可を「ただ修正」するのは少し難しく、Android LinuxはXMLパーサーを正確には出荷しません。必要なユーザーID変換は、必ずしも適用可能ではないため、どちらの方法でも役に立ちません。
あなたが挑戦のためにアップしている場合は、次のように、BusyBoxのビンを使用して、出発点は次のとおりです。
# Generate a permissions fixer from /data/system/packages.list:
cat /data/system/packages.list | awk '{print "chown u0_a" $2-10000 ":u0_a" $2-10000 " /data/data/"$1" -R"}' > /data/media/fix_perms.sh
chmod +x /data/media/fix_perms.sh
これがどのように見える行のリストが生成されます。
ある
chown u0_a17:u0_a17 /data/data/com.google.android.gsf -R
chown u0_a6:u0_a6 /data/data/com.android.keyguard -R
chown u0_a52:u0_a52 /data/data/com.google.android.calendar -R
chown u0_a48:u0_a48 /data/data/com.android.chrome -R
chown u0_a55:u0_a55 /data/data/jackpal.androidterm -R
を有望。すべてをチェック
chown -8998:-8998 /data/data/com.android.bluetooth -R
あなたは正気に必要がありますしかし、これは「ブルートゥース」、「ラジオ」、および「システム」などのユーザーのために動作しませんし、それらのユーザーを持つ行が代わりのようにゴミを生成します。スクリプトを実行する前に上記のcat..awkを| egrep -v '[0-9][0-9][0-9][0-9]:-[0-9][0-9][0-9][0-9]'
に配管することでこれを修正する単純な方法ですが、これはすべての場合に機能しないハックの解決策です。これがあなたに受け入れられるならば、上記を1行にまとめて/data/media/fix_perms.sh
にリダイレクトすることができます。
これで、/data/system/packages.xml
で定義されたものだけが修正されることはなく、通常のスクリプトではほとんどのデバイスでエラーが発生することがほぼ保証されているため、これについては説明しません。可能な解決策が必要な場合は、コメントを残してください。私はXMLファイルのモックスクリプトも作成します。
工場出荷時リセット?どのような変更を加えたのかはわかりませんが、ほとんどの場合、ルートされていない電話機や開発者の電話機では、そのフォルダにはアクセス権が制限されています。 – bgs
あなたはchmod 755 dirNameなどについて知っていますか? (それはうまくいくかもしれないが、私はアンドロイドからdiddlyを知らない;-)。 ... がんばろう! – shellter