大家好,又见面了,我是你们的朋友全栈君。
为Android加入busybox工具可以通过两种方式进入Android的console:
1. 直接执行命令emulator -shell;
2. 在启动emulator后,通过命令adb shell进入。
之后就可以使用一些linux下常用的命令了,如ls,cat等。然而Android自带的toolbox(位于/system/bin中)也太简略了点,有些命令如find,Android并不支持或者支持得不好。下面将介绍如何为Android加入busybox工具,通过编译得到一个可以在Android里面运行的busybox工具,就可以使用众多常见的linux命令了,如find,touch等。
步骤如下:
1. 首先去busybox主页 下载最新版本的busybox源代码.
2. 下载交叉编译工具: GNU Toolchain for ARM Processors
其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux TAR即可。
最后得到一个arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2文件
将压缩包解压到linux下某个目录, 并设置好环境变量, 使之能找到前缀为”arm-none-linux-gnueabi-“的交叉编译工具.
3. 进入busybox源码目录.
先执行make menuconfig命令对编译过程进行配置. 过程如下:
Busybox Settings -> Build Options ->
[*] Build BusyBox as a static binary (no shared libs) 这个要选上,因上这样子编译出来的busyBox才是可以独立运行的。
(/home/jo/tool/arm-2008q3/bin/arm-none-linux-gnueabi-) Cross Compiler prefex 这是交叉编译器的”路径+前缀”,要根据具体的情况来设置。
Busybox Settings -> Installation Options->
[*] Don’t use /usr 这样子编译出来的busybox才不会安装到主机的/usr目录下。一定要选上。
4 执行make编译源码. 如果编译过程中产生无法找到头文件的错误, 可指定交叉编译器用到的头文件所在路径. 如
$make -I./home/jo/tool/arm-2008q3/arm-none-linux-gnueabi/libc/usr/include/
5 编译成功后将得到一个名为busybox的可执行文件.
6 在Android的console下建立目录/data/busybox, 并使用下面的命令将文件busybox复制该目录中:
adb push busybox /data/busybox
7 从Android的console进入/data/busybox目录, 为可执行文件busybox加上可执行属性: chmod +x busybox
8 这时就可以使用busybox工具了, 如果希望在任何目录下都可以直接使用bosybox,则需要将路径/data/busybox export到path环境变量中:
export PATH=$PATH:/data/busybox
9 设置环境变量之后, 在命令行输入busybox, 即可看到其用法, 如:
在当前目录及其子目录中查找名为init.rc的文件可使用以下命令:
$busybox find . -name init.rc
10 安装busybox。
通过执行./busybox –install -s 会看到出现一些错误, 原因是因为Android系统的根目录和/sbin目录是只读的. 因此无法把一些常用命令安装到/bin目录下, 也不能修改/init.rc文件来设置PATH环境变量.
对于如何执行命令busybox –install -s 的默认安装路径, 这里还不太清楚, 或许跟Makefile和编译busybox的相关设置有关.
尽管不可以在Android里面通过执行busybox –install -s 命令来安装常用命令, 却可以通过另外一个方法来把常用命令安装到Android里面.
方法很简单, 可以先在外面的linux系统中执行make install命令把相关的命令提取出来. 然后再通过命令adb push ./_install/bin /data/busybox/bin 把这些常用命令复制进Android系统中. 注意: make install安装命令的所在路径可通过执行make menuconfig进行设置, 默认为./_install目录下面.
这样,就不用每次使用busybox提供的一个命令时, 都要在前面加上busybox了.
11 修改/init.rc文件设置环境变量.
请参考帖子: 对Android启动过程的进一步研究
要提醒的是, 修改PATH环境变量的时候, 应该把busybox常用命令的路径”/data/busybox/bin”放在Android的常用命令路径”/system/bin”的前面, 否则, 先查找得到的将不是busybox的命令, 可以这样设置:
export PATH /data/busybox/bin:/sbin:/system/sbin:/system/bin:/system/xbin
安卓手机安装完busybox.apk,出来个busybox installer图标,点击还是让安装,并提示安装成功,怎么运行命令
为Android加入busybox工具我们可以通过两种方式进入Android的console:
1. 直接执行命令emulator -shell;
2. 在启动emulator后,通过命令adb shell进入。
之后我们就可以使用一些linux下常用的命令了,如ls,cat等。然而Android自带的toolbox(位于/system/bin中)也太简略了点,有些命令如find,Android并不支持或者支持得不好。下面将介绍如何为Android加入busybox工具,通过编译得到一个可以在Android里面运行的busybox工具,我们就可以使用众多常见的linux命令了,如find,touch等。
步骤如下:
1. 首先去busybox主页 下载最新版本的busybox源代码.
2. 下载交叉编译工具: GNU Toolchain for ARM Processors
其中第一项选择ARM EABI或ARM GNU/Linux,第二项选择IA32 GNU/Linux TAR即可。
最后得到一个arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2文件
将压缩包解压到linux下某个目录, 并设置好环境变量, 使之能找到前缀为”arm-none-linux-gnueabi-“的交叉编译工具.
3. 进入busybox源码目录.
先执行make menuconfig命令对编译过程进行配置. 过程如下:
Busybox Settings -> Build Options ->
[*] Build BusyBox as a static binary (no shared libs) 这个要选上,因上这样子编译出来的busyBox才是可以独立运行的。
(/home/jo/tool/arm-2008q3/bin/arm-none-linux-gnueabi-) Cross Compiler prefex 这是交叉编译器的”路径+前缀”,要根据具体的情况来设置。
Busybox Settings -> Installation Options->
[*] Don’t use /usr 这样子编译出来的busybox才不会安装到你主机的/usr目录下。一定要选上。
4 执行make编译源码. 如果编译过程中产生无法找到头文件的错误, 可指定交叉编译器用到的头文件所在路径. 如
$make -I./home/jo/tool/arm-2008q3/arm-none-linux-gnueabi/libc/usr/include/
5 编译成功后将得到一个名为busybox的可执行文件.
6 在Android的console下建立目录/data/busybox, 并使用下面的命令将文件busybox复制该目录中:
adb push busybox /data/busybox
7 从Android的console进入/data/busybox目录, 为可执行文件busybox加上可执行属性: chmod +x busybox
8 这时我们就可以使用busybox工具了, 如果希望在任何目录下都可以直接使用bosybox,则需要将路径/data/busybox export到path环境变量中:
export PATH=$PATH:/data/busybox
9 设置环境变量之后, 在命令行输入busybox, 即可看到其用法, 如:
在当前目录及其子目录中查找名为init.rc的文件可使用以下命令:
$busybox find . -name init.rc
10 安装busybox。
通过执行./busybox –install -s 我们会看到出现一些错误, 原因是因为Android系统的根目录和/sbin目录是只读的. 因此我们无法把一些常用命令安装到/bin目录下, 也不能修改/init.rc文件来设置PATH环境变量.
对于如何执行命令busybox –install -s 的默认安装路径, 这里我还不太清楚, 或许跟Makefile和编译busybox的相关设置有关.
尽管我们不可以在Android里面通过执行busybox –install -s 命令来安装常用命令, 我们却可以通过另外一个方法来把常用命令安装到Android里面.
方法很简单, 可以先在外面的linux系统中执行make install命令把相关的命令提取出来. 然后再通过命令adb push ./_install/bin /data/busybox/bin 把这些常用命令复制进Android系统中. 注意: make install安装命令的所在路径可通过执行make menuconfig进行设置, 默认为./_install目录下面.
这样,我们就不用每次使用busybox提供的一个命令时, 都要在前面加上busybox了.
11 修改/init.rc文件设置环境变量.
请参考帖子: 对Android启动过程的进一步研究
要提醒的是, 修改PATH环境变量的时候, 应该把busybox常用命令的路径”/data/busybox/bin”放在Android的常用命令路径”/system/bin”的前面, 否则, 先查找得到的将不是busybox的命令, 可以这样设置:
export PATH /data/busybox/bin:/sbin:/system/sbin:/system/bin:/system/xbin
希望可以帮到你!
我root手机成功后安装了busybox pro软件在手机上,请问下怎么用它,或是它具体在手机上有什么作用,谢谢
用卓大师(甜椒,刷机精灵,360一键root) 应该方法也是大同小异 1.点设置 选择开发人员选项 勾选USB调试 然后关机 2.下载官方卓大师 安装 打开 然后同时按手机音量下键+电源键 进入 选择第四行以TEST开头的 点主页键(下面触屏第二个)。 3.连接数据线接上电脑 等卓大师识别出手机型号后 点卓大师界面最后一个 实用工具 找到获取ROOT 4.过程中要自启动两次 提示成功后 自己关机重启一次就好了 *切记不能中途拔数据线。
切记部分软件不帮你安装superuser,需要你自己安装,到此root完毕。
来自–IT狂人(知道团队)
我已经root了,,,安装了busybox pro这个软件有什么用,我把它卸载了有什么问题没
busybox安装不了
这个的意思告诉你,安装别的版本,当前版本不行(busybox版本不对)
我一般都安装2.0的(360助手里有)
如何在android上安装busybox
1
首先,对手机进行root,市场上好用的ROOT软件比比皆是,笔者这里用一键ROOT大师作为演示,打开软件后会首先更新机型库,以得到更全面的可root机型支持,所以在使用时最好连网使用
2
进入手机设置,找到“开发者选项”,将“USB调试”开启,部分安卓手机的开发者人员选项隐藏了,这时候只要尝试 设置-更多(或一般)-关于设备-点击“内部版本号”7次
3
即可看到提示“开发者模式已启用”,
4
这时候就可以返回上一层,然后就看到开发者选项了
5
然后同样,将“USB调试”打开即可
6
将手机用数据线连接电脑,可以看到root大师进入下列状态
7
点击“获取ROOT权限”开始获取,等到成功获取会得到下列界面
8
成功验证方式为在手机中会得到一个ROOT授权软件,而且当用“RE文件浏览器”一类的软件时会看到在根目录下有一个名为“ROOT”的文件夹
然后将手机更改为“USB存储设备”或者“MTP连接方式”,然后把busybox.apk、Terminal.apk、dSploit.apk复制到手机的SD卡中以备安装
安装Terminal(终端命令行),打开后输入命令su,并授予终端命令行超级权限
输入下列命令以查看安卓架构 cat /proc/cpuinfo
圈出来的就是安卓架构,然后安装busybox安装器,打开,看到如下界面
待智能检测结束后,选择适合自己架构的版本安装,关于适合自己架构的busybox版本可以在下面的网站中的文件中查看
选择好版本以后,点击一下如图的三角,并按图所示勾选上项目
点击安装,成功后会给予提示“成功!busybox已成功安装到您的设备之上。”,不成功的原因一般情况时您的/system内存不足,可以在 /system/apk 下删除一些不用的较大的文件,注意,这些文件都是两份,所以一次删除要删除名称大体相同两个,但注意不要删除必须的文件,否则系统恢复的时候就难以正常恢复了
然后安装我们的测试软件dSploit.apk,打开等待更新完成日志文件,此时就会看到正常的软件界面了
对于dSploit的功能这里不作介绍,有兴趣的朋友可以自行百度。
还有文中提到的busybox可以参考下图下载,至此,我们的“安卓安装busybox完整方案”就圆满成功了,鼓掌!!
我的busybox安装失败如图,vivo手机。
有可能是系统不兼容吧,比如小米的MIUI系统装了这个东西就是变砖
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160497.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...