gpt4 book ai didi

Android adb shell - ash 还是 ksh?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:01 26 4
gpt4 key购买 nike

Android 在线文档 Android Debug Bridge说“亚行提供了一个灰壳”。果然,如果我 adb shell 到 AVD 模拟器,我会得到 ash,它基本上是一个精简的 Bourne shell。

但是,如果我连接到几个远程设备,一个是 HTC 电话,另一个是 ASUS Transformer Prime 平板电脑,它们都有一个版本的 Korn shell,它提供:KSH_VERSION='@(# )MIRBSD KSH R39 2010/08/24'。虽然 MIRBSD KSH 不是成熟的 AT&T Korn shell,但它仍然比 ash 强大很多。

模拟器正在运行 Jelly Bean,并且两个设备都在使用 ICS。做更多的挖掘,看起来 ash 在 Gingerbread 中,但 mirbsd ksh 在 Honeycomb 中。

那么,有人可以确认 Android 在线文档有误,并且模拟器运行的是过时的 shell 吗?还是供应商正在实现他们自己的?

最佳答案

我是 mksh(The MirBSD Korn Shell)的作者,并且在已经为 Android 1.5 进行了 mksh 的实验性构建之后,大约在 1.6 时间提交了它以包含在 Android 中。

虽然 Android-x86 很早就使用了它,但它花了很长时间才被接受。起初我们有一个可配置的开关,电路板配置将决定是使用 ash 还是 mksh;谷歌同意一台设备只能装一个。大约在准备 2.4(从未发布)时,硬件板配置使用 mksh,而模拟器配置使用 ash,以确保不引入 mksh-specific,以防他们想要或需要返回到灰。 2.4一直没有发布,不知道3.0系列用的是什么,但是Android 4.0 mksh是它的标准系统shell。

mksh 甚至得到了 Geremy Condra 的安全审查,我们(AOSP/Google 人员和我)定期推送代码更新。有趣的事实:他们最初根本不打算在手机上运送外壳,但同意运送 mksh,因为那时他们已经运送了带有外壳的设备,所以它成为了已发布的 API。 Android 开发人员喜欢 mksh 的 #1 功能是 tab 补全。

现在看在线文档,似乎他们删除了 ash 引用。他们现在只是没有明确说明哪个 shell 可用。 (他们确实同意链接到在线文档中的 mksh 主页——我为此提交了一个补丁——这样用户就可以使用 RTFM 并提供错误报告和其他反馈。)

关于Android adb shell - ash 还是 ksh?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11950131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com