问题描述
刚刚将他们的 Kindle Fire 进行了 root 处理,并安装了一个名为 QuickSSHd 的 SSH 服务。他们通过这个 SSH 服务能以 root 用户身份登录并使用 sh
壳进行操作,但是发现 sh
壳功能较少,无法满足开发和管理需求。因此,用户希望了解一下如何在 Kindle Fire 上运行更具有功能性的 Bash 或其他替代壳。
解决方案
根据提供的信息以及版本差异需留意安装方法可能有所不同。
方案1:通过 CM 文件夹尝试获取 bash
根据 StackExchange 用户的建议(这里),似乎 CM(CyanogenMod) 系统已经集成了 bash,因此您可以通过刷写适当的系统文件来实现这一目标。具体来说可以尝试以下几个步骤:
- 获取适合 Kindle Fire 的 CM 版本,并安装在设备上。
- 安装完成后,检查
sh
或其他 shell 是否已被替换为 bash。可通过命令which sh
来确认当前使用的 shell 名称;若结果指向/system/bin/bash
或类似路径,则说明已成功切换。
方案2:手动安装 Bash 或 mksh
从提供的评论中可以看出,mksh
(一种功能更丰富的替代壳)支持直接在基于 Android 的系统上进行安装。您也可以尝试手动安装 Bash。
检查文件系统的可写权限:
根据评论者所述,/system 分区是否可以被重新挂载为可写的至关重要。您需要确认或尝试以 root 权限重新挂载 /system 分区。下载并安装 mksh 或其他 shell:
- 访问 mksh 官方网站 下载适用于 Android 的
mksh
二进制文件。确保下载的版本与设备兼容。 利用 SSH 登录 Kindle Fire,将
mksh
二进制文件复制到 /system 目录下:例如,
bash
scp path/to/mksh root@kindle_fire_ip_address:/system/xbin/设置 mksh 作为默认 shell(可选):
如果您希望进一步将此 shell 设定为默认 shell,可以更改/data/local.prop
文件中的属性。不过这需要谨慎操作。重新加载 SSH 服务以确保更改生效。
- 重启 SSHD 服务,命令如下:
bash
/system/xbin/service --force-reload sshd
或
更直接地登录并手动运行 shell:
bash
/system/xbin/mksh
- 重启 SSHD 服务,命令如下:
方案3:使用 Termux 等替代方法
若上述方案无法顺利实现,用户还可以考虑通过安装 Termux 这样的应用来获得一个功能丰富的命令行环境。尽管其主要目的是提供一个 Android 操作系统内部的 shell,但它能兼容 Bash 兼容脚本,且可以在非root设备上运行。
- 从 Google Play Store或者其他可靠的源下载并安装 Termux 应用。
- 开启 app, 测试是否可以用
bash
命令来启动 bash shell。
通过以上方法中的一种或多种尝试解决在 Kindle Fire 上需要使用更强大 Bash 功能的需求。如果遇到具体实现问题,请参考相关论坛中的讨论帖和用户分享的经验。