| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 【无标题】 -> 正文阅读 |
|
[移动开发]【无标题】 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一种安卓系统root开关的实现方式 背景技术 如今市场上安卓设备越来越多,开源的android源码给我们开发带来便捷的同时,也给我们自己的android设备埋下了安全隐患。Android系统userdebug版本自带root权限,如果恶意软件获取root权限后可以破坏我们的系统。很多厂商为了避免用户使用android设备的root权限,在发布正式版本的时候选择去掉系统的su文件(获取root权限的文件),但对于开发人员来说,没有root权限,就没法读取一些系统文件,给开发带来极大困难。 传统的获取系统root权限的安全措施是通过系统定制应用黑白名单来限制哪些应用可以使用root权限,哪些应用不能使用root权限,但由于黑白名单的方式,系统中依然存在su文件,有些安全机制的软件通过检查系统中如果有su文件,就判定该系统具备root权限功能,就会限制部分需要root权限的应用使用。 还有一种方式是隐藏su文件,如:把su文件改名为xx文件,这样虽然可以避免其他的应用检测到系统具备root权限,但对于第三方需要root权限的应用来说,他们不知道系统中的xx是获取su权限的方式,所以这些需要root权限的第三方应用自然就获取不到root权限,只有系统定制的开发人员知道通过xx来获取root权限。 应用场景 ???此专利应用场景是android设备在需要的时候打开root权限,在不需要的时候关闭root权限。这样可以让用户人为的控制root权限的开启与关闭。这样可以避免恶意软件获取root权限来破坏系统,同时需要使用root权限的时候还可以手动打开root权限,还可以避免第三方应用检测到系统具有root权限功能。 功能介绍 系统定制:
???可以在SystemUI的下拉框中增加一个按钮,点击一次按钮打开root开关,按钮变亮,再点击一次关闭root,按钮变暗。
???当点击打开root开关的时候,SystemUI先通过xx来获取root权限,然后通过root权限把system分区改为可读可写,再把xx拷贝一份为su,放在/system/bin/目录下,其他应用就可以通过su来获取root权限,最后再把system分区改为只读分区,防止其他应用操作system分区;当点击关闭按钮时,SystemUi通过xx获取root权限,然后通过root权限把system分区改为可读可写,然后删除/system/bin/su文件,最后把system分区改为只读。
???目的:给应用一root权限,不给应用二root权限。 ???在SystemUi中打开root开关,然后启动应用一,这样应用一就可以获取root权限,并且应用一的进程获取到root权限后就一直具有root权限。然后在SystemUI中关闭root开关,这样应用二就不能通过su获取root权限。 ?????? 疑问解答:
???答:当通过xx的文件复制产生su文件后,这个时候root开关是处于开启状态,任何应用都可以通过su来获取root权限。我们可以在root权限开启的时候,打开我们的目标应用,打开目标应用后再关闭root开关(这样即使关闭了root开关,已经启动的目标应用就会一直具备root权限,因为目标应用的进程已经启动,除非将目标应用从后台中退出,才需要重新获取root权限)。非目标应用获取root权限失败(root开关已关闭)。
???答:xx文件是我们系统定制文件,su文件是android系统公开的获取root权限文件,第三方应用并不知道xx文件具体的作用及功能(系统定制人员知道),第三方应用都是通过公开su获取root。
???答:android系统本质就是一个Linux系统,linux系统的强大之处在于多用户管理,对于不同的用户给不同的权限,linux系统里面有一个超级用户,叫做su,获取root权限,实际就是切换到了超级用户,超级用户权限高于普通用户. |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:41:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |