Android su

1. userdebug和user版本

2. 關閉selinux

system/core

diff --git a/init/selinux.cpp b/init/selinux.cpp index 5a0255acd..787917274 100644--- a/init/selinux.cpp +++ b/init/selinux.cpp

@@ -104,6 +104,8 @@ EnforcingStatus StatusFromCmdline() { } bool IsEnforcing() {

+ ? ? + return false; if (ALLOW_PERMISSIVE_SELINUX) { return StatusFromCmdline() == SELINUX_ENFORCING; }

3. 修改su.cpp,注釋用戶組權限檢測

system/extras/su/su.cpp

diff --git a/su/su.cpp b/su/su.cpp index 1a1ab6bf..af3d2a68 100644--- a/su/su.cpp

+++ b/su/su.cpp @@ -80,8 +80,8 @@ void extract_uidgids(const char* uidgids, uid_t* uid, gid_t* gid, gid_t* gids, i } int main(int argc, char** argv) {- ? ?- ? ? + ? ? uid_t current_uid = getuid(); //uid_t current_uid = getuid(); if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed"); + ? ? //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed"); // Handle -h and --help. ++argv; 4. 給 su 文件默認授予 root 權限 system/core/libcutils/fs_config.cpp diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 5805a4d19..92e93e76f 100644--- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp @@ -86,7 +86,7 @@ static const struct fs_path_config android_dirs[] = { { 00751, AID_ROOT, ? ? ? ? AID_SHELL, ? ? ? ? { 00755, AID_ROOT, ? ? ? ? { 00755, AID_ROOT, ? ? ? ? - ? { 00750, AID_ROOT, ? ? ? ? AID_ROOT, ? ? ? ? AID_SHELL, ? ? ? ? AID_SHELL, ? ? ? ? 0, "system/bin" }, 0, "system/etc/ppp" }, 0, "system/vendor" }, 0, "system/xbin" }, + ? - ? + ? { 00755, AID_ROOT, ? ? ? ? { 00751, AID_ROOT, ? ? ? ? { 00751, AID_ROOT, ? ? ? ? { 00751, AID_ROOT, ? ? ? ? AID_SHELL, ? ? ? ? AID_SHELL, ? ? ? ? 0, "system/xbin" }, 0, "system/apex/*/bin" }, AID_SHELL, ? ? ? ? AID_SHELL, ? ? ? ? 0, "system_ext/bin" }, 0, "system_ext/apex/*/bin" }, @@ -190,7 +190,7 @@ static const struct fs_path_config android_files[] = { // the following two files are INTENTIONALLY set-uid, but they // are NOT included on user builds. { 06755, AID_ROOT, ? ? ? AID_ROOT, ? ? ? { 04750, AID_ROOT, ? ? ? { 06755, AID_ROOT, ? ? ? AID_SHELL, ? ? AID_SHELL, ? ? 0, "system/xbin/procmem" }, 0, "system/xbin/su" }, 0, "system/xbin/su" }, frameworks/base/core/jni/com_android_internal_os_Zygote.cpp diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 9eede83e21e5..694eec2a40ac 100644--- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -656,6 +656,7 @@ static void EnableKeepCapabilities(fail_fn_t fail_fn) { } static void DropCapabilitiesBoundingSet(fail_fn_t fail_fn) { +/* for (int i = 0; prctl(PR_CAPBSET_READ, i, 0, 0, 0) >= 0; i++) {; if (prctl(PR_CAPBSET_DROP, i, 0, 0, 0) == -1) { if (errno == EINVAL) { @@ -666,6 +667,7 @@ static void DropCapabilitiesBoundingSet(fail_fn_t fail_fn) { } } } + */ } kernel/security/commoncap.c diff --git a/security/commoncap.c b/security/commoncap.c index f86557a8e43f6..19124dd6239a1 100644--- a/security/commoncap.c +++ b/security/commoncap.c @@ -1147,12 +1147,12 @@ int cap_task_setnice(struct task_struct *p, int nice) static int cap_prctl_drop(unsigned long cap) { struct cred *new; +/* if (!ns_capable(current_user_ns(), CAP_SETPCAP)) return -EPERM; if (!cap_valid(cap)) return -EINVAL; +*/ new = prepare_creds(); if (!new) return -ENOMEM; 5. user版本需要把su編進系統 build/core diff --git a/target/product/base_system.mk b/target/product/base_system.mk index 4569bceff9..5c8eaaa87c 100644--- a/target/product/base_system.mk +++ b/target/product/base_system.mk @@ -273,6 +273,7 @@ PRODUCT_PACKAGES += \ wificond \ wifi.rc \ wm \ + ? ? su \ # VINTF data for system image PRODUCT_PACKAGES += \ @@ -378,7 +379,6 @@ PRODUCT_PACKAGES_DEBUG := \ ss \ start_with_lockagent \ strace \- ? ? su \ sanitizer-status \ tracepath \ tracepath6

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43364.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

元宇宙時代超高清視音頻技術白皮書關于流媒體協議和媒體傳輸解讀

流媒體協議 元宇宙業務場景對流媒體傳輸的實時性和互動性提出了更高的要求,這就需要在傳統的 RTMP、SRT、 HLS 等基礎上增加實時互動的支持。實時互動,指在遠程條件下溝通、協作,可隨時隨地接入、實時地傳遞虛實融合的多維信息,身…

萬賓燃氣管網監測解決方案,守護城市生命線安全

方案背景 城市燃氣管網作為連接天然氣長輸管線與天然氣用戶的橋梁,擔負著向企業和居民用戶直接供氣的重要職責。隨著城市燃氣需求的急劇增加,城市燃氣管網規模日趨龐大,安全隱患和風險也隨之增加。目前,我國燃氣管網的運行仍存在…

Mathematica(42)-計算N個數值的和

比如,我們要用Mathematica求得到下面的式子: 這就需要用到一個函數:Sum 具體地,Sum函數的使用形式如下: 因此,按照公式就可以得到下面的結果: 如果,我們想要將求和號也加進去&#…

Jenkins的流水線啟動jar后未執行問題處理

現象 在流水線里配置了啟動腳本例如,nohup java -jar xxx.jar >nohup.out 2>&1 & 但是在服務器發現服務并未啟動,且nohup日志里沒輸出日志,這樣的原因是jenkins在執行完腳本后,就退出了這個進程。 在啟動腳本執行jar命令的上一步加入以下…

【AIGC 訊飛星火 | 百度AI|ChatGPT| 】智能對比

AI智能對比 🍸 前言🍺 概念類對比🍵 訊飛🍵 百度AI🍵 chatGPT 🍹 功能類對比? 訊飛? 百度AI? chatGPT 🥃 可輸入字數對比🥤 百度AI🥤 訊飛🥤 chatGPT &…

【Django】Task1安裝python環境及運行項目

【Django】Task1安裝python環境及運行項目 寫在最前 8月份Datawhale組隊學習,在這個群除我佬的時代,寫一下blog記錄學習過程。 參考資源: 學習項目github:https://github.com/Joe-2002/sweettalk-django4.2 隊長博客&#xff1a…

RocketMQ 消息消費 輪詢機制 PullRequestHoldService

1. 概述 先來看看 RocketMQ 消費過程中的輪詢機制是啥。首先需要補充一點消費相關的前置知識。 1.1 消息消費方式 RocketMQ 支持多種消費方式,包括 Push 模式和 Pull 模式 Pull 模式:用戶自己進行消息的拉取和消費進度的更新Push 模式:Broker…

探索心律失常:病因、診斷與治療以及與腸道菌群的關聯

谷禾健康 你是否有時會感到心悸、心慌、胸悶、氣短、頭暈、乏力?你是否有時感覺自己的心跳過快或過慢? 如果有上述情況,就要引起重視了,你可能存在心律失常。心律失常是最常見的心臟疾病之一,涉及到心臟的電活動節奏異…

麻辣燙數據可視化,麻辣燙市場將持續蓬勃發展

麻辣燙,這道源自中國的美食,早已成為人們生活中不可或缺的一部分。它獨特的香辣口味,讓人忍不住每每流連忘返。與人們的關系,簡直如同摯友一般。每當寒冷的冬日或疲憊的時刻,麻辣燙總是悄然走進人們的心房,…

i.MX6ULL開發板無法進入NFS掛載文件系統的解決辦法

問題 使用NFS網絡掛載文件系統后卡住無法進入系統。 解決辦法 此處不詳細講述NFS安裝流程 查看板卡掛載在/home/etc/rc.init下的自啟動程序 進入到../../home/etc目錄下,查看rc.init文件,首先從第一行排查,查看/home/etc/netcfg文件代碼內容&…

Flask-SQLAlchemy

認識Flask-SQLAlchemy Flask-SQLAlchemy 是一個為 Flask 應用增加 SQLAlchemy 支持的擴展。它致力于簡化在 Flask 中 SQLAlchemy 的使用。SQLAlchemy 是目前python中最強大的 ORM框架, 功能全面, 使用簡單。 ORM優缺點 優點 有語法提示, 省去自己拼寫SQL,保證SQL…

Python爬蟲——scrapy_crawlspider讀書網

創建crawlspider爬蟲文件: scrapy genspider -t crawl 爬蟲文件名 爬取的域名scrapy genspider -t crawl read https://www.dushu.com/book/1206.htmlLinkExtractor 鏈接提取器通過它,Spider可以知道從爬取的頁面中提取出哪些鏈接,提取出的鏈…

spring的核心技術---bean的生命周期加案例分析詳細易懂

目錄 一.spring管理JavaBean的初始化過程(生命周期) Spring Bean的生命周期: 二.spring的JavaBean管理中單例模式及原型(多例)模式 2.1 . 默認為單例,但是可以配置多例 2.2.舉例論證 2.2.1 默認單例 2.2…

前端常用算法(一):防抖+節流

目錄 第一章 防抖 1.1 防抖(debounce)簡介 1.2 應用場景 1.3 實現思路 1.4 手撕防抖代碼 第二章 節流 2.1 節流(throttle)簡介 2.2 應用場景 2.3 實現思路 2.4 手撕節流代碼(方法:時間戳和計時器…

MR300C工業無線WiFi圖傳模塊 內窺鏡機器人圖像傳輸有線無線的兩種方式

MR300C無線WiFi圖傳模使用方法工業機器人圖像高清傳輸 ? MR300C圖傳模塊基于MIPS處理器實現,電腦/手機連接模塊的WIFI熱點或網口即可查看視頻流 ? 模塊的USB 2.0 Host接口,可接入USB uvc攝像頭/內窺鏡默認輸出的視頻格式必須是MJPG ? 模塊支持接入攝…

計算機競賽 圖像識別-人臉識別與疲勞檢測 - python opencv

文章目錄 0 前言1 課題背景2 Dlib人臉識別2.1 簡介2.2 Dlib優點2.3 相關代碼2.4 人臉數據庫2.5 人臉錄入加識別效果 3 疲勞檢測算法3.1 眼睛檢測算法3.3 點頭檢測算法 4 PyQt54.1 簡介4.2相關界面代碼 5 最后 0 前言 🔥 優質競賽項目系列,今天要分享的是…

在 PyTorch 中使用關鍵點 RCNN 進行人體姿勢估計--附源碼

人體姿態估計是計算機視覺領域的一個重要研究領域。它涉及估計人體上的獨特點,也稱為關鍵點。在這篇博文中,我們將討論一種在包含人類的圖像上查找關鍵點的算法,稱為Keypoint-RCNN。該代碼是使用 Pytorch 使用Torchvision庫編寫的。 假設您想要建立一名私人健身教練,可以通…

MongoDB升級經歷(4.0.23至5.0.19)

MongoDB從4.0.23至5.0.19升級經歷 引子:為了解決MongoDB的兩個漏洞決定把MongoDB升級至最新版本,期間也踩了不少坑,在這里分享出來供大家學習與避坑~ 1、MongoDB的兩個漏洞 漏洞1:MongoDB Server 安全漏洞(CVE-2021-20330) 漏洞2…

SpringBoot + Vue 微人事(十二)

職位批量刪除實現 編寫后端接口 PositionController DeleteMapping("/")public RespBean deletePositionByIds(Integer[] ids){if(positionsService.deletePositionsByIds(ids)ids.length){return RespBean.ok("刪除成功");}return RespBean.err("刪…

工業視覺相機鏡頭選型方法

一、相機選型 1、首先,根據檢測需求確定選用黑白/彩色、面陣/線陣相機,接口類型一般選擇GigE 2、確定檢測精度要求(最小特征尺寸mm)、視野范圍,一個測量精度對應幾個像素數(一般取3-5) 3、計…