推广 热搜: page  使用  音视频  个数  选择  搜索引擎  企业  百度  可以  父亲 

应用层获取root权限

   日期:2024-12-30     作者:s7bzq    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/16235.html
核心提示:开发APP的时候会用到 RunTime.exec() 或者 ProcessBuild().start()执行几行命令行,在需要root权限的时候会抛出如下错误 C

开发APP的时候会用到 RunTime.exec() 或者 ProcessBuild().start()执行几行命令行,在需要root权限的时候会抛出如下错误

Cannot run program “su“: error=13, Permission denied

错误提示非常明显,执行该命令权限不足,进入shell查看

 红框部分的s代表只有文件所有者的uid通过校验才可以被执行,观察后六位发现只有root和shell用户才有可权限,其他用户没有权限,在应用层使用ProcessBuild 执行一段命令行肯定其他用户,因此没有权限

方法一

到/system/core/libcutils/fs_config.c   修改名为 android_files 结构体数组

 

只需将04750 修改成 00755 即可

 改后变成:文件拥有者的uid (字母s)标志位没了,其他用户多了个 可读可执行权限,到此修改效果完成。    modified:   system/core/libcutils/fs_config.c

方法二

/system/extras/su/su.c  对当前进程的uid 做一个鉴权,当不是 ROOT 或 SHELL 用户的时候直接抛异常

 

我们知道Zygote进程是用来生孩子的,只要在APP进程出生的时候搞事情,满足su.c里面的判断条件就可以了。

进入frameworks/base/core/java/com/android/internal/os/ZygoteConnection.java

找到applyUidSecurityPolicy 函数,在末尾添加代码,编译即可。

 

此方法不会改变敏感文件本来的权限,推荐使用

应用层获取root权限

-----------------------修改结束-------------

推荐用方法二,影响范围最小

最后附上APP端的调用例子

 


 

本文地址:http://ww.kub2b.com/news/16235.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号