[Toybox] Android .config pondering.

Rob Landley rob at landley.net
Wed May 4 20:20:16 PDT 2022


So I thought there should probably be a "make android_defconfig" target even if
android isn't using it, just so I have an easier time tracking stuff. Except
android has three configs: device, linux, and mac.

The android .config-mac the output of "make macos_defconfig" differing seems
like a "me" problem (I should update my macos_defconnfig, and ideally I'd get an
ssh into a mac box so I can see what actually builds and passes its tests. I
could kinda hack the github build stuff in a fork to do that maybe? Rather a lot
of iteration required though, unless maybe "make change" works on mac...)

But the other two are... kinda confusing? The device (android) config has a lot
of stuff the linux (build) one does not: acpi, base64, blkdiscard, blkid,
blockdev, cal, chattr, chcon, chgrp, chown, chroot, chrt, cksum, clear, devmem,
df, dmesg, expand, fallocate, false, file, flock, fmt, freeramdisk, free,
fsfreeze, fsync, getenforce, getfattr, groups, gunzip, help, hwclock, i2c*,
iconv, ifconfig, inotifyd, insmod, ionice, iorenice, iotop, kill, killall,
load_policy, logname, log, losetup, lsattr, lsmod, lsof, lspci, lsusb, makedevs,
mkfifo, mknod (twice?), mkswap, modinfo, modprobe, more, mount, mountpoint,
nbd_client, netcat, netstat, nice, nohup, nsenter, partprobe, pidof, ping,
ping6, pivot_root, pmap, printenv, pwdx, readelf, renice, restorecon, rev,
rfkill, rmmod, rtcwake, runcon, sendevent, setenforce, setfattr, sha224sum,
sha384sum, split, strings, stty, swapoff, swapon, sync, sysctl, tac, taskset
(twice), time, top, traceroute, tty, tunctl, uclampset, ulimit, umount, unlink,
unshare, uptime, usleep, uudecode, uuencode, uuidgen, vconfig, vi, vmstat,
watch, and yes.

In fact only two symbols are enabled in the linux host but NOT the device:
CONFIG_TOYBOX_LSM_NONE just means selinux support was NOT selected, and
CONFIG_TOYBOX_SUID... can't work in the AOSP build? (Not only does the android
build not run as root, but it doesn't CLONE as root either, meaning the toybox
binary can't be installed suid root, so never has any privileges to drop.)

I guess this means I should use the device .config? (It sounds like what
.config-linux wants is everything built but only certain symlinks populated?
Which I guess is a dependency tracking thing?)

Rob



More information about the Toybox mailing list