繁体   English   中英

Android adb shell - ash还是ksh?

[英]Android adb shell - ash or ksh?

Android在线文档Android Debug Bridge说“Adb提供了一个灰壳”。 果然,我如果adb shell到AVD模拟器我得到的灰这基本上是一个切下的Bourne shell。

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

模拟器正在运行Jelly Bean,两个设备都在使用ICS。 再做一点挖掘,看起来像是在姜饼中的灰烬,而在Honeycomb中则是mirbsd ksh。

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

我是mksh(The MirBSD Korn Shell)的作者,并且在已经为Android 1.5进行了mksh的实验性构建之后大约1.6次将其提交到Android中。

尽管Android-x86很早就使用了它,但这需要花费很长时间才能被接受。 起初我们有一个可配置的开关,其中电路板配置将确定是否使用了灰或mksh; 谷歌同意只有一个应该在设备上发货。 在准备2.4(从未发布)的时候,硬件板配置使用mksh,而模拟器配置使用灰,以确保不引入mksh特定,以防他们想要或需要返回灰。 2.4从未发布,我不知道3.0系列上使用了什么,但是因为Android 4.0 mksh是它的标准系统shell。

mksh甚至得到了Geremy Condra的安全审查,我们(AOSP / Google和我这两个人)都会定期推送更新代码。 有趣的事实:他们最初根本不打算在手机上发货但他们同意发货mksh,因为他们已经在那时装有带有外壳的设备,因此它成为已发布API的一部分。 Android开发人员喜欢mksh中的第一个功能,就是灰烬,是标签完成。

现在看一下在线文档,似乎他们删除了灰分参考。 他们现在只是没有明确说明哪个shell可用。 (他们确实同意链接到在线文档中的mksh主页 - 我提交了一个补丁 - 以便用户可以RTFM并提供错误报告和其他反馈。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM