#
# Hand-maintained .config file.
#

#
# General settings.
#

CONFIG_TOYBOX=y
CONFIG_TOYBOX_CONTAINER=y
# CONFIG_TOYBOX_DEBUG is not set
CONFIG_TOYBOX_FALLOCATE=y
CONFIG_TOYBOX_FIFREEZE=y
CONFIG_TOYBOX_FLOAT=y
CONFIG_TOYBOX_FORK=y
# CONFIG_TOYBOX_FREE is not set
CONFIG_TOYBOX_HELP_DASHDASH=y
CONFIG_TOYBOX_HELP=y
CONFIG_TOYBOX_I18N=y
CONFIG_TOYBOX_ICONV=y
CONFIG_TOYBOX_LIBCRYPTO=y
# CONFIG_TOYBOX_LSM_NONE is not set
# CONFIG_TOYBOX_MUSL_NOMMU_IS_BROKEN is not set
CONFIG_TOYBOX_NORECURSE=y
CONFIG_TOYBOX_ON_ANDROID=y
CONFIG_TOYBOX_ANDROID_SCHEDPOLICY=y
# CONFIG_TOYBOX_PEDANTIC_ARGS is not set
CONFIG_TOYBOX_SELINUX=y
# CONFIG_TOYBOX_SHADOW is not set
# CONFIG_TOYBOX_SMACK is not set
# CONFIG_TOYBOX_SUID is not set
CONFIG_TOYBOX_UID_SYS=100
CONFIG_TOYBOX_UID_USR=500
# CONFIG_TOYBOX_UTMPX is not set

#
# Selected toys.
#

CONFIG_ACPI=y
# CONFIG_ARPING is not set
# CONFIG_ARP is not set
# CONFIG_ASCII is not set
CONFIG_BASE64=y
CONFIG_BASENAME=y
CONFIG_BLKID=y
CONFIG_BLOCKDEV=y
# CONFIG_BOOTCHARTD is not set
# CONFIG_BRCTL is not set
# CONFIG_BUNZIP2 is not set
# CONFIG_BZCAT is not set
CONFIG_CAL=y
# CONFIG_CATV is not set
CONFIG_CAT_V=y
CONFIG_CAT=y
# CONFIG_CD is not set
CONFIG_CHATTR=y
CONFIG_CHCON=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_CHROOT=y
CONFIG_CHRT=y
# CONFIG_CHVT is not set
CONFIG_CKSUM=y
CONFIG_CLEAR=y
CONFIG_CMP=y
CONFIG_COMM=y
# CONFIG_COMPRESS is not set
# CONFIG_COUNT is not set
CONFIG_CPIO=y
CONFIG_CP_MORE=y
CONFIG_CP_PRESERVE=y
CONFIG_CP=y
# CONFIG_CRC32 is not set
# CONFIG_CROND is not set
# CONFIG_CRONTAB is not set
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_DD=y
# CONFIG_DEALLOCVT is not set
# CONFIG_DEBUG_DHCP is not set
# CONFIG_DECOMPRESS is not set
CONFIG_DF=y
# CONFIG_DHCP6 is not set
# CONFIG_DHCPD is not set
# CONFIG_DHCP is not set
CONFIG_DIFF=y
CONFIG_DIRNAME=y
CONFIG_DMESG=y
CONFIG_DOS2UNIX=y
# CONFIG_DUMPLEASES is not set
CONFIG_DU=y
CONFIG_ECHO=y
CONFIG_EGREP=y
# CONFIG_EJECT is not set
CONFIG_ENV=y
# CONFIG_EXIT is not set
CONFIG_EXPAND=y
CONFIG_EXPR=y
# CONFIG_FACTOR is not set
CONFIG_FALLOCATE=y
CONFIG_FALSE=y
# CONFIG_FDISK is not set
CONFIG_FGREP=y
CONFIG_FILE=y
CONFIG_FIND=y
CONFIG_FLOCK=y
CONFIG_FMT=y
# CONFIG_FOLD is not set
CONFIG_FREERAMDISK=y
CONFIG_FREE=y
# CONFIG_FSCK is not set
CONFIG_FSFREEZE=y
# CONFIG_FSTYPE is not set
# CONFIG_FSYNC is not set
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set
CONFIG_GETENFORCE=y
CONFIG_GETFATTR=y
# CONFIG_GETPROP is not set
# CONFIG_GETTY is not set
CONFIG_GREP=y
# CONFIG_GROUPADD is not set
# CONFIG_GROUPDEL is not set
CONFIG_GROUPS=y
CONFIG_GUNZIP=y
CONFIG_GZIP=y
CONFIG_HEAD=y
# CONFIG_HELLO is not set
CONFIG_HELP_EXTRAS=y
CONFIG_HELP=y
# CONFIG_HEXEDIT is not set
# CONFIG_HOSTID is not set
# CONFIG_HOST is not set
CONFIG_HOSTNAME=y
CONFIG_HWCLOCK=y
# CONFIG_ICONV is not set
CONFIG_ID=y
CONFIG_ID_Z=y
CONFIG_IFCONFIG=y
# CONFIG_INIT is not set
CONFIG_INOTIFYD=y
CONFIG_INSMOD=y
CONFIG_INSTALL=y
CONFIG_IONICE=y
CONFIG_IORENICE=y
CONFIG_IOTOP=y
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
# CONFIG_IP is not set
# CONFIG_KILLALL5 is not set
CONFIG_KILLALL=y
CONFIG_KILL=y
# CONFIG_KLOGD is not set
# CONFIG_KLOGD_SOURCE_RING_BUFFER is not set
# CONFIG_LAST is not set
# CONFIG_LINK is not set
CONFIG_LN=y
CONFIG_LOAD_POLICY=y
# CONFIG_LOGGER is not set
# CONFIG_LOGIN is not set
CONFIG_LOGNAME=y
CONFIG_LOG=y
CONFIG_LOSETUP=y
CONFIG_LSATTR=y
CONFIG_LS_COLOR=y
CONFIG_LSMOD=y
CONFIG_LSOF=y
CONFIG_LSPCI=y
# CONFIG_LSPCI_TEXT is not set
CONFIG_LSUSB=y
CONFIG_LS=y
CONFIG_LS_Z=y
CONFIG_MAKEDEVS=y
CONFIG_MD5SUM=y
# CONFIG_MDEV_CONF is not set
# CONFIG_MDEV is not set
CONFIG_MICROCOM=y
# CONFIG_MIX is not set
CONFIG_MKDIR=y
CONFIG_MKDIR_Z=y
# CONFIG_MKE2FS_EXTENDED is not set
# CONFIG_MKE2FS_GEN is not set
# CONFIG_MKE2FS is not set
# CONFIG_MKE2FS_JOURNAL is not set
# CONFIG_MKE2FS_LABEL is not set
CONFIG_MKFIFO=y
CONFIG_MKFIFO_Z=y
CONFIG_MKNOD=y
CONFIG_MKNOD=y
CONFIG_MKNOD_Z=y
# CONFIG_MKPASSWD is not set
CONFIG_MKSWAP=y
CONFIG_MKTEMP=y
CONFIG_MODINFO=y
CONFIG_MODPROBE=y
CONFIG_MORE=y
CONFIG_MOUNTPOINT=y
CONFIG_MOUNT=y
CONFIG_MV_MORE=y
CONFIG_MV=y
CONFIG_NBD_CLIENT=y
CONFIG_NETCAT_LISTEN=y
CONFIG_NETCAT=y
CONFIG_NETSTAT=y
CONFIG_NICE=y
CONFIG_NL=y
CONFIG_NOHUP=y
# CONFIG_NPROC is not set
# CONFIG_NSENTER is not set
CONFIG_OD=y
# CONFIG_ONEIT is not set
# CONFIG_OPENVT is not set
CONFIG_PARTPROBE=y
# CONFIG_PASSWD is not set
CONFIG_PASTE=y
CONFIG_PATCH=y
CONFIG_PGREP=y
CONFIG_PIDOF=y
# CONFIG_PING is not set
CONFIG_PIVOT_ROOT=y
CONFIG_PKILL=y
CONFIG_PMAP=y
CONFIG_PRINTENV=y
CONFIG_PRINTF=y
CONFIG_PS=y
CONFIG_PWDX=y
CONFIG_PWD=y
# CONFIG_READAHEAD is not set
CONFIG_READLINK=y
CONFIG_REALPATH=y
# CONFIG_REBOOT is not set
CONFIG_RENICE=y
# CONFIG_RESET is not set
CONFIG_RESTORECON=y
CONFIG_REV=y
CONFIG_RFKILL=y
CONFIG_RMDIR=y
CONFIG_RMMOD=y
CONFIG_RM=y
# CONFIG_ROUTE is not set
CONFIG_RUNCON=y
CONFIG_SED=y
CONFIG_SENDEVENT=y
CONFIG_SEQ=y
CONFIG_SETENFORCE=y
CONFIG_SETFATTR=y
CONFIG_SETPROP=y
CONFIG_SETSID=y
CONFIG_SHA1SUM=y
CONFIG_SHA224SUM=y
CONFIG_SHA256SUM=y
CONFIG_SHA384SUM=y
CONFIG_SHA512SUM=y
# CONFIG_SH is not set
# CONFIG_SHRED is not set
# CONFIG_SKELETON_ALIAS is not set
# CONFIG_SKELETON is not set
CONFIG_SLEEP_FLOAT=y
CONFIG_SLEEP=y
CONFIG_SORT_BIG=y
CONFIG_SORT_FLOAT=y
CONFIG_SORT=y
CONFIG_SPLIT=y
CONFIG_START=y
CONFIG_STAT=y
CONFIG_STOP=y
CONFIG_STRINGS=y
CONFIG_STTY=y
# CONFIG_SU is not set
# CONFIG_SULOGIN is not set
CONFIG_SWAPOFF=y
CONFIG_SWAPON=y
# CONFIG_SWITCH_ROOT is not set
CONFIG_SYNC=y
CONFIG_SYSCTL=y
# CONFIG_SYSLOGD is not set
CONFIG_TAC=y
CONFIG_TAIL_SEEK=y
CONFIG_TAIL=y
CONFIG_TAR=y
CONFIG_TASKSET=y
CONFIG_TASKSET=y
# CONFIG_TCPSVD is not set
CONFIG_TEE=y
# CONFIG_TELNETD is not set
# CONFIG_TELNET is not set
# CONFIG_TEST_HUMAN_READABLE is not set
# CONFIG_TEST is not set
# CONFIG_TEST_MANY_OPTIONS is not set
# CONFIG_TEST_SCANKEY is not set
# CONFIG_TEST_UTF8TOWC is not set
# CONFIG_TFTPD is not set
# CONFIG_TFTP is not set
CONFIG_TIMEOUT=y
CONFIG_TIME=y
CONFIG_TOP=y
CONFIG_TOUCH=y
CONFIG_TRACEROUTE=y
CONFIG_TRUE=y
CONFIG_TRUNCATE=y
CONFIG_TR=y
# CONFIG_TTOP is not set
CONFIG_TTY=y
CONFIG_TUNCTL=y
CONFIG_ULIMIT=y
CONFIG_UMOUNT=y
CONFIG_UNAME=y
CONFIG_UNIQ=y
CONFIG_UNIX2DOS=y
# CONFIG_UNLINK is not set
# CONFIG_UNSHARE is not set
CONFIG_UPTIME=y
# CONFIG_USERADD is not set
# CONFIG_USERDEL is not set
CONFIG_USLEEP=y
CONFIG_UUDECODE=y
CONFIG_UUENCODE=y
CONFIG_VCONFIG=y
# CONFIG_VI is not set
CONFIG_VMSTAT=y
# CONFIG_WATCH is not set
CONFIG_WC=y
# CONFIG_WGET is not set
CONFIG_WHICH=y
CONFIG_WHOAMI=y
# CONFIG_WHO is not set
# CONFIG_W is not set
# CONFIG_XARGS_PEDANTIC is not set
CONFIG_XARGS=y
CONFIG_XXD=y
# CONFIG_XZCAT is not set
CONFIG_YES=y
CONFIG_ZCAT=y
