tree b349a95009a3a65f50d3e1f37e5a7beae69d636b
parent 533d6cb4c29ae17f7b59aa58cf649c88edfb4eb3
author Steve Kondik <steve@cyngn.com> 1447536714 +0100
committer Gerrit Code Review <gerrit@cyanogenmod.org> 1452131648 -0800

Sorry BusyBox, you've been disrupted.

 * Android has fully embraced Toybox in AOSP to replace most of Toolbox
   and provide a semi-functional commandline environment.
 * We are currently using the master branch of AOSP, with a few of our
   own changes. This covers about 90% of the cases where Busybox was
   used. For the remaining stuff (compression tools, etc) I've brought
   in extra packages or other fixes in order to cover the gaps.

 * I suspect this will be controversial, but at this point BusyBox is
   deprecated and Toybox is the future.

 * Thank you to everyone (Tanguy, the Android x86 team, Dan, etc) who
   have maintained this port to Android over the years!

Change-Id: I74627a294bb198b28d6727e9b78b72582b1b0ad3
