[Toybox] Fwd: Re: Toybox Installer/setup routine?

Rob Landley rob at landley.net
Sun Oct 6 12:16:53 PDT 2019


And then it spent a month as an open window on my laptop until I had half a
weekend day to close tabs. :)

On 9/2/19 6:40 PM, scsijon wrote:
> he somehow missed the group box out, so i've sent it on.
> 
> however, from this he doesn't seem to understand android is only one of it's
> operating systems, and was a later addition, not it's sole reason for existing.
> 
> scsijon
> -------- Forwarded Message --------
> Subject: Re: [Toybox] Toybox Installer/setup routine?
> Date: Sun, 1 Sep 2019 20:07:26 -0400
> From: dmccunney <dennis.mccunney at gmail.com>
> To: scsijon <scsijon at lamiaworks.com.au>
> 
> On Sun, Sep 1, 2019 at 7:22 PM scsijon <scsijon at lamiaworks.com.au> wrote:
>>
>> This may be a can of worms or off-topic but...
>>
>> I was wondering if Toybox should/could have an inbuilt installer/setup
>> routine of some sort and how are others handling this retro-fit problem!
> 
> That sounds like a *huge* can of worms.

People constantly accuse me of trying to "boil the ocean". I like to think of
myself more as doing the Sam Vimes "deep internal anger of a man who wanted to
arrest the gods for doing it wrong".

> My question, given that Android is the principal target for Toybox,

It's the largest deployment platform by at least an order of magnitude, but
that's true for just about anything these days.

> is
> how Android users get/install it.  As it stands, it looks like you
> need a rooted device to be *able* to install/use it, and successive
> Android releases have locked it progressively down and good luck
> *getting* root on your device. (One of my devices runs Marshmallow,
> and I haven't found a rooting solution that works.  My other devices
> run and KitKat Lollipop and I *can* root them.  (The last device I
> bought of eBay I carefully selected a model with Lollipop instead of
> Marshmallow so I *could*  root the thing.)

In theory you can build AOSP from source and install it on your device, the
bootloader does allow itself to be unlocked so you can do this, but it's a
complete wipe of the device to do so.

There was a lovely 2015 talk about _why_ android does this (they call the evil
maid problem the "evil butler problem"), but alas the Linux Foundation
accidentally deleted the whole of 2015's ELC youtube channel and they have yet
to dig up the files. (I got one of my talks back because dandan at lysator had
downloaded it, and sent me a copy. I haven't got the other talk I did that year
back, and all the others seem gone for the moment.)

The tl;dr is post-snowden they're extra-worried that somebody will get your
phone for 5 minutes while you're in the shower and bug it and you'll never know
that it's in speakerphone mode 24/7 from then on streaming all the audio in any
room you're in to NSA or KGB or GOP headquarters, and the only way to do that is
to sign everything and make any unsigned install require a bootloader unlock
that does a complete wipe so you _notice_ your phone got hijacked.

And of course any remote exploit that doesn't require physical custody of your
phone opens the possibility of a warhol worm from bitcoin guys who keylog your
banking transactions and drain your account. (Even if you don't do banking on
your phone, if your account reset email address is accessable through your
phone. Or text. I never give my phone number to any website because then they
make SMS password reset messages a single point of failure for stealing all my
accounts, which is just _rude_.)

> I'm conversant enough with Linux that I *could* replace Busybox with
> Toybox - it's a matter of dropping the toybox binary into a system
> directory in the $PATH and creating symlinks - but you need to be root
> and know how to do that.

Ok, I'll bite. How did you get busybox on the device in the first place?

> If you aren't and don't, you probably
> shouldn't be trying to install/use toybox in the first place.

Toybox comes on the device. By all means, use it.

Elliott's proposing having new toybox binaries built for old android versions
(back to Jellybean) be up on developer.android.com. I have no idea what would be
involved in signing them so you could upgrade through the play store, that's not
my area. (And it would probably be an "install alongside" so you'd have to
change your $PATH to get the new toybox...)

As for doing _development_ on a stock android system, I envision a "posix
container" run by something a bit like minijail. But it's not available yet.
(There's been thousands of hours put into android developer GUI stuff on PCs,
but nobody's started an on-device NDK IDE effort yet. I'd happily run one, but
I'm not a Google employee and don't have enough hobby time to do justice to
toybox as it is.)

Rob



More information about the Toybox mailing list