繁体   English   中英

在GenyMotion虚拟设备上与SELinux进行交互

[英]Interact with SELinux on GenyMotion Virtual Device

我读了很多关于SELinux的文章,并且我想尝试着为大学做一个案例研究。 我已经在GenyMotion上安装了各种虚拟设备,从Android 6到Android 9,但是没有人拥有SElinux:当我执行“ sestatus”时,它会回答“ disabled”。 我认为启用它还不够,似乎必须将模块安装在内核中,有人可以告诉我该怎么做吗? 我尝试过,但是没有找到任何东西,我遇到很多困难,这是我第一次做这些事情。 预先感谢大家。

最终,我设法使一切正常:我能够通过GenyMotion虚拟设备中的终端访问Selinux信息。 Selinux在版本4.3之后的设备上已经处于活动状态,无需安装它,因为它表示为@Martin Zeitler。 我解释了该问题的解决方案(在Linux上有效)。

  1. 要做的第一件事是在虚拟设备中安装终端:我已经安装了Termux。 为此,只需从站点下载apk并将其拖动到虚拟设备,即可开始安装。 随后,有必要向Termux终端提供SuperUser权限:通常,通过打开终端,提供SU命令,然后设备会询问您是否要向Termux应用程序提供SuperUser权限。 输入SU命令时,它将允许您浏览设备上的文件夹。 使用“ ls”命令(提供“ -Z”选项),您可以看到文件的SElinux上下文。 在终端上,使用“ getenforce”命令,可以查看Selinux的运行方式。 在这里,您将看到其他有用的命令: https : //www.all-things-android.com/content/se-android-commands
  2. 现在,您将需要下载允许我们与Selinux交互的工具:setools。 https://github.com/pasis/setools-android这些工具是用C(Android的本地语言)编写的,因此您需要下载NDK库进行编译: https : //developer.android.com/ndk/下载/
  3. 编译的第一件事是指定项目路径:export NDK_PROJECT_PATH = / my / project / path。 第二步是指定生成文件:ndk-build NDK_APPLICATION_MK = / my / project / Makefile.am(有关完整指南,请访问: https ://software.intel.com/zh-cn/articles/building-an-android- 命令行应用程序使用ndk构建工具
  4. 完成编译后,可以使用adb程序将Setools文件夹发送到虚拟设备。 ./adb push / setool / local / folder / remote / device / folder(例如:./adb / setool / tmp)现在您已经在设备上安装了Setool,可以在“ / setool / obj / local”中运行这些工具/ x86“文件夹。 借助“ sepolicy-inject”,您还可以将规则添加到策略中。

在此处输入图片说明

最后,由于有了本指南,我才意识到Selinux策略是以二进制格式存储的,因此没有工具就无法与它们进行交互。 https://ge0n0sis.github.io/posts/2015/12/exploring-androids-selinux-kernel-policy/

一个不能在Android上“安装SE Linux”; 因为自API级别21开始已经默认安装和启用它,所以您需要成为root用户才能访问这些管理命令。 仅在有根的硬件设备或有根的仿真器映像上才有可能。

...只需安装CentOS或任何其他启用安全性的Linux发行版进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM