Android adb shell - ash or ksh?

最后都变了- 提交于 2019-11-30 09:13:08

I’m the author of mksh (The MirBSD Korn Shell) and have submitted it for inclusion into Android at roughly the 1.6 time after having had experimental builds of mksh for Android 1.5 already.

It took quite a while for this to be accepted, although Android-x86 used it very early. At first we had a configurable switch where the board config would determine whether ash or mksh were used; Google agreed that only one should be shipped on a device. Around the time when 2.4 was prepared (which was never released), the hardware board configs used mksh, whereas the emulator config used ash, in order to make sure to not introduce mksh-specifics in case they should want or need to go back to ash. 2.4 never got released, and I don’t know what was used on the 3.0 series, but since Android 4.0 mksh is its standard system shell.

mksh even got a security review by Geremy Condra, and we (both the AOSP/Google people as well as me) regularily push updates to the code. Fun fact: they didn’t intend to ship a shell on the phones initially at all but agreed to ship mksh because they already had shipped devices with a shell on them by then, so it became part of the published API. The #1 feature Android developers like in mksh, over ash, is tab completion.

Looking at the online docs now, it seems that they removed the ash reference. They’re now just not explicit on which shell is available. (They did agree to link to the mksh homepage in the online docs – I submitted a patch for that – so that users can RTFM and provide bug reports and other feedback.)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!