androidsu源码
‘壹’ 安卓系统root权限的获取,是需要源码吗什么教你获取手机的root就不要回答了,我要的是系统的,需要资料!
只需要su文件就行啊
‘贰’ android系统到底有没有su
没有,真的,不骗你。
‘叁’ android系统放开su权限后如何验证
android系统放开su权限后找得对应代码一一对应后即可验证。根据查询相关公开信息显示,android系统放开su权限后可以卸载手机中占内存的无用的自带软件,开放su后参数传入命令行,在方法体中执行。具体的命令行,再需要的时候去找对应的命令即可。
‘肆’ 怎么用代码判断android手机是否开启了ROOT权限
android手机开启了root权限,主要是根据root之后,获取了手机的最高权限,底层linux系统就会生成一个以su结尾的文件,su代表super超级权限,如下代码:
/**
* 判断当前手机是否有ROOT权限
* @return
*/
public boolean isRoot(){
boolean bool = false;
try{
if ((!new File("/system/bin/su").exists()) && (!new File("/system/xbin/su").exists())){
bool = false;
} else {
bool = true;
}
Log.d(TAG, "bool = " + bool);
} catch (Exception e) {
}
return bool;
}
android底层是使用linux进行编译和一些驱动、网络管理的,所以可以根据linux的权限特性来判断是否root,权限的管理在linux里面很多,包括读写、删除文件的权限,也有关于访问网络的权限,这些权限都需要开通才能有。
‘伍’ 安卓系统手机su程序是做什么呢,版本太低如何更新
su是Linux 切换root用户的命令,android 是linux内核因此可以执行一些linux命令。
su版本过低需要重新刷入root权限,因为刷入root权限就是向手机上安装一个su命令
Root权限的获取方式:
1.用手机连接电脑,下载一键root工具。
2.下载成功后,打开一键ROOT软件。会出现root准备,点击下一步,正式开始root。
3.检查root条件,要是你需要文件备份的话,一定要备份后。点击开始ROOT。
3.root正式开始,需要几钟左右时间,期间可能会重启数次,root就会完成。
4.root完成后,你就可以随意删除你手机中的垃圾应用了包括系统应用。
‘陆’ 请教Android Runtime.getRuntime.exec 执行命令 权限问题
Runtime.getRuntime().exec()只能执行权限以内的指令。
手机root后,且应用申请root权限后才能执行所有指令。
(注意模拟器并没有root,因为su命令没有开放权限,要改android源码,去掉su.c里的权限限制才真正root)
‘柒’ 安卓手机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进程直接替换成需要执行的命令
‘捌’ 怎样查看 Android APP源代码
将apk文件拷贝至sdcard上。
命令顺序如下:
进入Android sdk文件夹/tools目录下
输入adb shell
输入su
输入cd data
输入cd app
这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/
这样就将apk文件拷贝出来了。
将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,
其中xml文件打开后都是二进制的,无法查看。
这时就用到了一个android4me的AXMLPrinter2工具。(请自行网络搜索)
输入以下命令,将xml文件解析出来
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
将showtimes_list.xml生成xml文件,则输入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。
这里用到了另一个工具dex2jar。(自行搜索下载)
在Windows下解压之后的目录如下图所示:
在命令行中,进入到此目录下:
在Windows下,输入以下命令:
dex2jar.bat c:classes.dex
运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。
利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)
它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。
解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!
‘玖’ 怎么编译su文件,如何执行android.mk
没有编译过su的,不过正常的编译的话,需要Android源码环境。
1、在根目录下执行source build/envsetup.sh
2、执行lunch选择编译的平台,这个是基于你的平板或者手机的
3、make -j8.
如果你要编译在framework需要把你的android.mk文件路径写到framework/base里的.mk里
如果是编译的是apk的话,在源码编译完成后,可以直接在你的apk目录下,执行mm -B.