簡體   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