热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Android模拟器下添加busybox(图文)

1什么是busybox?BusyBox是一个集成了一百多个最常用linux命令和工具的软件。BusyBox包含了一些简单的工具,例如ls、cat和echo等等

1 什么是busybox?

BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、 cat 和 echo等等,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令。也包含了 Android 系统的自带的shell.其官网是: http://www.busybox.net/

为什么要在Android中加入busybox?

用过adb shell的人应该知道,在默认情况下,adb shell下是不能用clear,grep, find,vi等指令的,甚至连Tab链自动补全功能都不能用,对于已经习惯了使用这些指令的码农们来说,这是件比较悲摧的事情。幸运地是,我们有了busybox!



2 下载busybox

打开下载界面:http://www.busybox.net/downloads/binaries/ ,如下图:


选择最新的版本: 1.19.0, 然后进入下一个界面:


选择适合你的设备的版本进行下载,这里我们为Android模块器下载busybox-armv6l.

下载下来后,将其重命名为busybox:

$mv busybox-armv6l busybox
$chmod 755 busybox

3 放入模拟器

首先用adb shell进入模拟器,在/data目录下新建一个busybox的目录,然后将busybox放入此目录下.

$adb shell
#cd /data
#mkdir busybox
#exit
$adb shell push busybox /data/busybox
如下图:


4 安装并运行busybox所提供的工具

重新adb shell连接上模拟器,进入到/data/busybox目录下,然后输入

#./busybox clear试试是不是就可以生效了呢?呵呵

可是这样还是不是很好使用,因为每次使用 busybox命令时都得在命令行前面加上./busybox前缀,这个很麻烦,因此,我们先将bosybox提供的这些命令安装到模拟器下,就可以省去这些麻烦了。

安装:

在/data/busybox当前目录下,输入:

#./busybox --install ./

--install 后面的./表示安装到当前目录,之所以要安装到当前目录,是因为默认安装到/system/bin目录下或/system/xbin目录下是不能成功的,因为没有足够的权限.

然后在当前目录下再次输入:

#./clear可以看到clear命令生效了,比之前已前进了一步了.不过还是不是很好,因此运行 busybox所提供的指令必须进入到/data/busy目录或在指令中输入./data/busybox/clear,诸如这些的指令,还是比较麻烦,因此,接下来需要修改一个PATH的值:

# export PATH=/data/busybox:$PATH
然后试着在任何目录下运行clear,可以看到已经OK了。恭喜你,终于安装busybox成功了!

不过,还是有些东西不是很方便,至少还存在以下三个不足之处:

1 Tab 键的自动补全功能还是不行.
2 #号前没有显示当前路径,这使我们经常不知当前已经进入到目录的哪一层了.
3 退出adb shell后再次进入,得重新设置PATH值才能恢复方便使用busybox工具.

至于前面这个问题,其实busybox下有一个ash的shell,直接运行它:

#ash然后我们就可以试试,看看是不是tab键自动补全功能还显示当前路径的功能已经有了呢.OK,前面两个问题已经解决,下次我去使用bosybox的时候,首先先运行ash就可以了.这样运行之后,原本没有任何颜色的显示也会变成丰富多彩起来,如下图所示:


还剩下最后一个问题.最后一个问题的解决方法,在adb shell后,Android模拟器根目录下有一个init.rc文件.如上图,用vi打开(vi也是busybox提供的工具),在最后一行加入如下指令:

# export PATH=/data/busybox:$PATH然后保存,系统提示当前文件为只读文件,不能保存.看来没有写的权限,需要获取足够权限后再来修改此文件,然后保存才能解决此第三个问题.

只可惜此文件为只读权限,我试了安装z4root软件获取root权限,修改default.prop等诸多方法,都没能保存修改init.rc的内容。。。估计在adb 下是不能修改它的,要是有谁知道方法的话,还请告知一下!

我知道的另一种方法就是在源码下的out目录下修改 init.rc文件,然后重新生成镜像文件,再重新启动模拟器,但是这种方法相当于重新刷机。有一定的局限。







推荐阅读
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 如何彻底清除顽固软件如360
    本文详细介绍了如何彻底卸载难以删除的软件,如360安全卫士。这类软件不仅难以卸载,还会在开机时启动多个应用,影响系统性能。我们将提供两种有效的方法来帮助您彻底清理这些顽固软件。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 本文将带领读者深入了解Android系统源码在手机中的实际表现,通过详细的步骤和专业的解释,帮助你更好地理解Android系统的底层运作机制。 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本主题面向IT专业人士,介绍了Windows Server 2012 R2和Windows Server 2012中的组托管服务账户(gMSA),涵盖了其应用场景、功能改进、硬件和软件要求以及相关资源。 ... [详细]
  • 本文将详细探讨Linux pinctrl子系统的各个关键数据结构,帮助读者深入了解其内部机制。通过分析这些数据结构及其相互关系,我们将进一步理解pinctrl子系统的工作原理和设计思路。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
author-avatar
mobiledu2502928947
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有