3

以前は Nexus 6 で systrace を実行できましたが、最近動作しなくなりました (おそらく、最近の毎月の更新の 1 つの後): デバイスからトレースをダウンロードしようとして systrace がハングします。

ではadb logcat、次のような一連の行が表示されます

05-26 14:57:08.567  4933  4933 W <my.app.package>: type=1400 audit(0.0:23388710): avc: denied { getattr } for comm=66627379737472616365206E6F7469 path="/sys/kernel/debug/tracing/trace" dev="debugfs" ino=4158 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:debugfs:s0 tclass=file permissive=0

systrace が を使用していることは知っていますdebugfsが、これは SELinux パーミッションの問題のようです ( https://source.android.com/security/selinux/validate.htmlを参照)。誰かがこれを再び機能させましたか?

4

1 に答える 1

0

これは仕様によるものです。Debugfs には多くの危険なビットが含まれているため、tracefs に分割されます。詳細については、次の記事が便利です。

AOSP の system/sepolicy では、これで neverallows を見つけることができます:

96b1c9ca (Nick Kralevich 2015-12-17 16:38:21 -0800 564) neverallow { domain -init -system_server -dumpstate } debugfs:file no_rw_file_perms;

untrusted_app を読むだけでなく (これは上記でカバーされており、余分なようです):

$ git blame -L106,106 untrusted_app.te
96b1c9ca (Nick Kralevich 2015-12-17 16:38:21 -0800 106) neverallow untrusted_app debugfs_type:file read;

ちなみに、16 進数でエンコードされた通信フィールドを取得した場合は、Python を使用して次のようにデコードできます。

'66627379737472616365206E6F7469'.decode('hex')
'fbsystrace noti
于 2016-06-13T19:32:23.873 に答える