androidroot源码
A. 安卓手机root权限获取的工作原理是什么
首先明白几点
1. su是一个elf可执行文件,superUser是用来和su配合的root授权管理软件。
2. 要执行su(其他程序获取root权限默认执行su)必须将su放在系统环境变量里,bin和xbin目录,其他地方你需要加全路径
3. bin和xbin目录在system分区,默认只读,所以要写入su必须重新挂在该分区为可写
知道这些再说如何root
1. 通过漏洞将自己进程提权到root权限,具体做法要去了解漏洞利用原理
2. 进程获取root权限后重新挂载system分区可读写
3. 然后将su拷贝到bin目录或者xbin目录,由于su的所有者提权进程已经是root进程,所以su也具有root属性。然后设置su文件755属性,即所有者可读可写可执行,所在组和其他用户可读可执行,同时为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限,所以需要设置s标志位,即其他评论提到的chmod 4755 su,superuser拷贝system目录并安装,放在system目录下作为系统应用,防用户删除
4. 这样其他程序调用su以后,先要经过superuser同意,用户点同意后,由于su拥有者为root所以其进程也拥有root权限,相应的它执行的命令也都是有root权限, 详细的做法可去github搜su源码阅读,最后执行的一句`execv(ctx->to.shell, ctx->to.argv + argc);`通过验证后将su进程直接替换成需要执行的命令
B. 有android源码的情况下怎么开放系统的root权限
编译的时候选debug版本 然后编译完成之后通过adb remout和adb root就可以了
C. 有android源码的情况下怎么开放系统的root权限
现在一键ROOT的工具很多,推荐一键Root大师,ROOT成功率很高,支持机型多,而且很简单,你可以试试。试试一键Root大师吧,ROOT刷机成功率都很高,而且支持很多机型。
D. 修改android哪一小部分源代码,实现整机root
获取Android的ROOT权限其实很简单,只要在Runtime下执行命令"su"就可以了。
复制代码代码如下:
// 获取ROOT权限
public void get_root(){
if (is_root()){
Toast.makeText(mCtx, "已经具有ROOT权限!", Toast.LENGTH_LONG).show();
}
else{
try{
progress_dialog = ProgressDialog.show(mCtx,
"ROOT", "正在获取ROOT权限...", true, false);
Runtime.getRuntime().exec("su");
}
catch (Exception e){
Toast.makeText(mCtx, "获取ROOT权限时出错!", Toast.LENGTH_LONG).show();
}
}
}
其中is_root()判断是否已经具有了ROOT权限。只要/system/bin/su、/system/xbin/su这两个文件中有一个存在,就表明已经具有ROOT权限,如果两个都不存在,则不具有ROOT权限。
复制代码代码如下:
// 判断是否具有ROOT权限
public static boolean is_root(){
boolean res = false;
try{
if ((!new File("/system/bin/su").exists()) &&
(!new File("/system/xbin/su").exists())){
res = false;
}
else {
res = true;
};
}
catch (Exception e) {
}
return res;
E. android app 如何用代码实现ROOT
手机root权限,是系统权限的一种。很多手机都自带很多没用的软件。但是自己却不能删除这些软件,因为自己的权限不够。这时候,只要把手机ROOT一遍,就能拥有手机的最高权限了。随意删除手机里面的任何软件。
Root权限的获取方式:
1.用手机连接电脑,下载一键root工具。
2.下载成功后,打开一键ROOT软件。会出现root准备,点击下一步,正式开始root。
3.检查root条件,要是需要文件备份的话,一定要备份后。点击开始ROOT。
4.root正式开始,需要几钟左右时间,期间可能会重启数次,root就会完成。
5.root完成后,就可以随意删除手机中的垃圾应用了包括系统应用。
F. Android如何使用代码获得root权限
最简单的方法,使用一键root(推荐你还是使用第三方刷机工具进行破解ROOT,Z4ROOT只是给你一个方法,但是都是一样的,那就是破解ROOT,你可以试试甜椒,卓大师,刷机精灵,网络,360,绿豆,深度刷机等等,,,如果都不行,再试试手机端破解,KINGROOT,Z4ROOT.):
1、首先下载z4root软件并安装到手机中,安装完成后打开z4root软件。
2、打开后将会出现两个选项,第一个是临时root,也就是reboot(重启)后就会还原回未root状态,第二个就是永久root了,使用第二个以后,我们重新开机也不再需要root权限了。
3、选择一项进入后,软件就会自动对手机进行root,完全不用我们手工进行操作,非常得方便。
4、经过一段时间的等待之后,如果成功的话,会在软件菜单中增加一个授权管理的图标,有了这个图标就表示我们的手机已经root成功了,现在你想怎么用就怎么用了。
不过z4root也有许多不足的地方,z4root也不是全能,并不能支持所有的安卓手机进行root,不能使用z4root进行root的椒友们只能通过其它方法进行root了。
不过,软件法失败率也不低,一般情况下刷机法更为可靠,互联网上有各种机型的各种教程,因此通常情况下不建议使用软件法。
G. 如何调试跟踪Android Framework源代码
本文讲解如何在Eclipse中导入Android源代码(包括Framework和Application的代码),然后通过模拟器或真机跟踪/调试Android的java代码,区别于一般基于Android SDK的纯应用开发,这里可以跟踪/调试Framework中的代码。
一、准备工作
确保机器上已经安装并配置下列软件环境:JDK/ Eclipse / Android SDK / ADT
即,机器上已经安装了Eclipse下Android应用开发所需的环境。如果还未配置,移步《搭建Windows下Android应用开发环境——Eclipse/Android/ADT》。
另外,为了跟踪调试Android源码,你还需要有Android源码,并有源码的编译环境,可以是:
虚拟机环境 虚拟机中安装Linux,Linux下编译Android源码。此环境下,如果要在宿主机的Eclipse中调试,还需要把Android的源码路径共享出来,宿主机可访问到;
有单独的可编译Android的网络环境 在你的客户端的机器上访问服务器共享出来的Android的源码路径;
Linux环境下直接通过Eclipse跟踪调试本机上的Android源码。
-Xms40m
-Xmx384m
-Xms128m
-Xmx512m
注意:不管哪种工作方式,Android源码要都是已经编译过的,且编译时采用的是Eng模式(vs User mode)。编译Android Platform和Kernel的过程,可参考《Ubuntu10.10下编译Android2.2平台》及《Ubuntu10.10下编译Android2.2内核》。
二、基本设置
准备工作完毕之后,现在做一些基本的设置。
1. 把Android源码路径<Android_ROOT>下的developmentideeclipse中的.classpath文件复制到<Android_ROOT>下;如果需要在模拟器中进行调试的话,需要复制三个img(具体方法见http://wenku..com/view/26d9063c87c24028915fc366.html)
2. 修改Eclipse的设置
修改eclipse.ini文件,更改下列内容:
[plain]view plain
改为:
[java]view plain
这里增大最小Java堆大小到128MB,增大最大Java堆大小到512MB。
三、Eclipse中创建工程
1. File > New > Java Project