当前位置: 首页 > news >正文

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

相关文章:

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() { …...

微信小程序真机调试异常cmdId 1006, errCode-50011-已解决

cmdId 1006, errCode-50011 起因 小程序在模拟器上预览没问题,真机调试和体验版首页打不开,点展开显示cmdId 1006, errCode-50011 解决 查了下1006, 说是广告, 我没接广告,这个也不是错误码 1006广告组件被驳回你的广告正在被审核,无法展现广告后来找到几个类似的帖子…...

36.SpringMVC视图

SpringMVC视图 SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户 SpringMVC视图的种类很多,默认有转发视图(InternalResourceView)和重定向视图(RedirectView) 配置视图: 当工程引入jstl的依赖&a…...

LeetCode 热题 100(四):48. 旋转图像、240. 搜索二维矩阵 II、234. 回文链表

一.48. 旋转图像 题目要求:就是一个顺时针的旋转过程。 思路:观察矩阵,得出翻转前第i行的第J个元素 等于 翻转后倒数第i列的第J个元素,举例说明,第1行第2个元素为“2”,翻转后到了 倒数第1列的第2个元素…...

Qt 编译使用Bit7z库接口调用7z.dll、7-Zip.dll解压压缩常用Zip、ISO9660、Wim、Esd、7z等格式文件(二)

修改qt5 7zip源码编译及使用(含展示进度)一文中的封装类ZlibHelper代码类,继承多线程,使解压,压缩时进度条不影响界面,同时添加压缩文件中的文件预览功能,建议直接看源码 导读 相关代码内容扩展预览内容时获取文件修改…...

224、仿真-基于51单片机音乐播放器流水灯控制Proteus仿真设计(程序+Proteus仿真+原理图+程序流程图+元器件清单+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选…...

虹科展会 | 自动驾驶展品:上海汽车测试展精彩回顾

2023年8月9日-8月11日,上海国际汽车测试及质量监控博览会在上海圆满落幕。本次展会提供了一个了解最新汽车测试及质量监控技术、产品和趋势的机会,同时也是汽车测试及质量监控领域的专业人士和业内人士的重要交流平台。 雅名特是虹科旗下子公司&#xff…...

Unity自定义脚本的 初始模版

参考博主:Unity修改创建的脚本模板,Unity脚本模板路径_unity hub 怎么改脚本模板_先生沉默先的博客-CSDN博客 【100个 Unity实用技能】 ☀️ | Unity自定义脚本的初始模版_unity 模板脚本_呆呆敲代码的小Y的博客-CSDN博客 一,将脚本放到Ed…...

vue3中使用第三方插件mitt实现任意组件通讯

vue3中使用第三方插件mitt实现任意组件通讯 组件通讯是vue3组合式开发的核心之一,现在我在写代码时,一个组件的代码超过了200行,基本都会拆分组件。组件拆分后,组件之间的通讯就很重要,总结了一下,目前有这…...

(五)、深度学习框架源码编译

1、源码构建与预构建: 源码构建: 源码构建是通过获取软件的源代码,然后在本地编译生成可执行程序或库文件的过程。这种方法允许根据特定需求进行配置和优化,但可能需要较长的时间和较大的资源来编译源代码。 预构建: 预…...

迈向通用听觉人工智能!清华电子系、火山语音携手推出认知导向的听觉大语言模型SALMONN

日前,清华大学电子工程系与火山语音团队携手合作,推出认知导向的开源听觉大语言模型SALMONN (Speech Audio Language Music Open Neural Network)。 大语言模型 SALMONN LOGO 相较于仅仅支持语音输入或非语音音频输入的其他大模型,SALMONN对…...

NOIP 2015 扫雷(mine)

扫雷(mine) 说明 扫雷游戏是一款十分经典的单机小游戏。在 n行 m 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会…...

elaticsearch(3)

整合springboot 1.整合依赖 注意依赖版本和安装的版本一致 <properties> <java.version>1.8</java.version> <!-- 统一版本 --> <elasticsearch.version>7.6.1</elasticsearch.version> </properties> 导入elastics…...

DevOps系列文章 之 Gitlab+Docker自动部署SpringBoot

1.环境要求 以下服务器的操作系统均为Centos7 服务器A&#xff1a;Gitlab服务器B&#xff1a;GitlabRunner、Docker、docker-compose、Java1.8、maven3.6.3、git ps&#xff1a;这里可以把服务器B的GitlabRunner、Java1.8、maven3.6.3、git单独提出来&#xff0c;独立部署&a…...

React Native 列表组件基础知识

ScrollView 组件 ScrollView组件是一个容器滚动组件&#xff0c;当容器超出指定宽高时就可以进行滚动交互。 ScrollView组件是一次性渲染所有的 React 子组件&#xff0c;这在性能上是比较差的&#xff0c;所以不建议当列表特别长的时候使用此组件。 接下来列举几个常用的一…...

操作系统的体系结构、内核、虚拟机

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 操作系统结构 一、操作系统体系结构1.1操作系统的内核1.1.…...

【C++】vector的基本用法

vector是动态数组的同义词 一、vector对象带参数构造 1.vector<int>a(a,a5);//左闭右开 2.vector<int>b&#xff08;n&#xff0c;z&#xff09;&#xff1b;n个z 3.vector<int>c(a);//拷贝 二、动态数组可以整体赋值 vector<int>vec; vector&l…...

SSM——用户、角色、权限操作

1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT…...

UI界面设置

文章目录 1. 修改 share.html 内容如下&#xff1a;2. 修改 html 文件格式为 utf-83.保存&#xff0c;运行程序4. 访问页面 1. 修改 share.html 内容如下&#xff1a; <!DOCTYPE html><html> <head><meta charset"utf-8"><title>1v1屏…...

论文学习——PixelSNAIL:An Improved Autoregressive Geenrative Model

文章目录 引言论文翻译Abstract问题 Introduction第一部分问题 第二部分问题 Model Architecture网络结构第一部分问题第二部分问题 Experiments实验问题 Conclusion结论问题 总结参考 引言 这篇文章&#xff0c;是《PixelSNAIL:An Improved Autoregressive Geenrative Model》…...

mySQL 视图 VIEW

简化版的创建视图 create view 视图名 as select col ...coln from 表create view 视图名&#xff08;依次别名&#xff09; as select col ...coln from 表create view 视图名 as select col “别名1”&#xff0c;。。。col "别名n" from 表show tab…...

「UG/NX」Block UI 曲线收集器CurveCollector

✨博客主页何曾参静谧的博客📌文章专栏「UG/NX」BlockUI集合📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C+&#...

微信小程序:函数节流与函数防抖

目录 问题引入&#xff1a; 定义 解决方案&#xff1a;函数节流 一、案例举例 1.页面展示 2.search.wxml标签展示 3.search.js展示 4.结果展示 二、函数节流解决问题 1.函数 2.实例应用 三、函数防抖解决问题 1.函数 2.原理 3.应用场景 4.应用实例 总结 问题引入…...

Mathematica(42)-计算N个数值的和

比如&#xff0c;我们要用Mathematica求得到下面的式子&#xff1a; 这就需要用到一个函数&#xff1a;Sum 具体地&#xff0c;Sum函数的使用形式如下&#xff1a; 因此&#xff0c;按照公式就可以得到下面的结果&#xff1a; 如果&#xff0c;我们想要将求和号也加进去&#…...

安装和配置 Ansible

安装和配置 Ansible 按照下方所述&#xff0c;在控制节点 control.area12.example.com 上安装和配置 Ansible&#xff1a; 安装所需的软件包 创建名为 /home/curtis/ansible/inventory 的静态清单文件&#xff0c;以满足以下要求&#xff1a; node1 是 dev 主机组的成员 node2 …...

电脑系统重装日记

重装原因 电脑C盘几乎爆炸故重装系统一清二白 此片原因 记录重装过程&#xff0c;强调一些要注意的点&#xff0c;以防日后重装。 重装过程 1.清空电脑文件后重启&#xff0c;电脑冒蓝光&#xff0c;一直蓝屏反复重启&#xff0c;故只能重装系统以解难题。 2.准备一个U盘&…...

通讯协议044——全网独有的OPC HDA知识一之聚合(十二)持续坏值时间

本文简单介绍OPC HDA规范的基本概念&#xff0c;更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化&#xff0c;以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…...

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时&#xff1a; 提示 然后 实际上是运行&#xff1a;com.docker.admin.exe start-service...

excel提示更新外部引用文件 这个提示能手动禁用

是的&#xff0c;你可以手动禁用 Excel 中的更新外部引用文件的提示。这些步骤可能因 Excel 版本而有所不同&#xff0c;以下是一般的步骤&#xff1a; 1. **打开 Excel**&#xff1a; 2. **进入“选项”**&#xff1a; - 在 Excel 中&#xff0c;点击顶部菜单中的“文件”…...

2023 最新 小丫软件库app开源源码 PHP后端

上传了源码解压之后&#xff0c;在admin/public/config.php修改后台登录账号和密码 后台地址&#xff1a;域名或者ip/admin 然后自己修改配置即可 后端搭建完成&#xff0c;现在导入iapp源码 导入iapp源码之后&#xff0c;修改mian.iyu载入事件的对接api和url就可以打包了 sss …...