2012-07-11 1 views
11

私は別のアプリに1つのアプリで書いたファイルへのアクセスを許可しようとしています。 chgrpはadbシェルでは利用できません(command 'chgrp' not found) 私はBusyBoxをインストールしましたが、chgrpにアクセスするには、ルーティッドアンドロイドデバイス上のファイルのグループIDを変更するにはどうすればよいですか?

たとえば、私はコマンドchown app_79 file.txtを使用し、それは動作します。 しかし、私はそれは常に私が束をGoogleで検索し、ほとんどのLinuxシステムは、そのシステムのグループ情報を格納するファイル/etc/groupを持っているが、それはAndroidの中に存在していないことが判明

chgrp: unknown group app_79のようなものを返す chgrp app_79 file.txtを試してみてください。

答えて

21

、それはこれらのIDのはに持つおそらく

chown uid.gid filename 

だろうマットが指摘しているように数字である。

+0

私のIDは数値である必要はありませんでした。 'root.root'と' root.system'は私のデバイス上で動作しました。 – BuvinJ

+0

Linuxでは、 'chown owner:group filepath'は一般的にこの期間の構文に対して機能することに注意してください。 – BuvinJ

3

いくつかのグループIDがどのようにハードコードされているかについての情報があります。hereまた、/data/system/packages.list/data/system/packages.xmlには、アプリのUIDが含まれていたという以前の知識がありました。これらはすべて10000 + xのようなものです。私が今知っているのは、xはあなたがls -lのときに "app_"の後に来る数字です。

だから、奇妙なことはchgrp 10079 file.txtですが、chgrp app_79 file.txtできません。

これは誰かを助けることを望みます。

6

busybox chown uid.gid file.txtを使用し、名前の代わりにUIDとGIDを数値として指定します。 app_79そうcorresponds ID 10079に(あなたがbusybox ls -l -n /data/dataでそれを再確認することを確認するために):

組み込みツールではなく、busyboxのを使用して
busybox chown 10079.10079 file.txt 
関連する問題