守护进程被SELinux杀死

时间:2020-05-11 10:50:22

标签: android process native android-native-library

我正在尝试运行一个守护程序,它是android中的本机二进制文件。我已经读到启动API-28禁止执行二进制文件,所以目前我使用compileSdkVersion 23

我尝试了几种启动二进制文件的方法:

  • 使用Runtime.getRuntime().exec()
  • 在本地使用popen()

这两种方法都有效,但是由于某种原因,启动守护程序后不久,该进程被终止。 dmesg显示以下内容:

[ 3667.854255] init: Untracked pid 19164 received signal 31
[ 3667.891082] init: Untracked pid 19173 exited with status 0
[ 3671.915378] init: Untracked pid 19174 received signal 31
[ 3671.974854] init: Untracked pid 19179 exited with status 0
[ 3672.153192] FG: fg_battery_soc_smooth_tracking: soc:71, last_soc:71, raw_soc:71, soc_changed:1.
[ 3672.153213] FG: soc_monitor_work: soc:71, raw_soc:71, c:-364745, s:1
[ 3675.998134] init: Untracked pid 19180 received signal 31
[ 3676.057815] init: Untracked pid 19186 exited with status 0
[ 3680.082653] init: Untracked pid 19187 received signal 31
[ 3680.138179] init: Untracked pid 19192 exited with status 0

这是连续两次执行二进制文件的结果。

根据我的阅读,这可能是由于SELinux引起的,但是我无法确认,因为当我尝试在设备上设置许可模式时仍然无法使用。

我可以确认您可以在API-16API-21上启动守护程序而没有任何问题。我还可以确认,当使用run-as从adb启动时,它可以正常工作,并且不需要root。

我正在运行的机器正在使用API​​-28,并且已植根。

0 个答案:

没有答案