Senior Member
Thanks Meter 4
Posts: 115
Join Date: Jan 2004
|
I don't know if this is covered, or even helpful, but, I noticed that busybox was installed during root yet, only ls was linked. This may not be the right place to post this information so, please just let me know if there is somewhere else I should post it. I am just trying to help.
For those who use adb shell, busybox -- a small executable combining several UNIX/Linux commands for embedded systems -- just needs you to symlink the tools to it in order for them to work without needing to type busybox in front of each one. For instance, if you try and copy a file -- the command is `cp` (without quotes) in Linux -- you may find that the cp command doesn't exist. You can run it with `busybox cp` but with long commands, you may find yourself typing busybox 15 times. To correct, just run the following from an "adb shell":
cd /system/xbin
ln -s busybox cp
You can follow that by any tool that is compiled into busybox. Here are the ones I linked to and the commands I used:
cd /system/xbin
ln -s busybox cp
ln -s busybox vi
ln -s busybox telnet
ln -s busybox telnetd
ln -s busybox grep
ln -s busybox killall
ln -s busybox find
There were more but, I think you understand how it works.
I just got my NookColor and am loving it. I haven't had much time to play around with it yet. I am going to get some tools installed this weekend to help me hack it easier. I will try and post things as I get them working.
Here are the commands that you can link:
[, [[, acpid, addgroup, adduser, adjtimex, arp, arping, ash, awk, basename, beep, blkid, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk, fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid, hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, length, less, linux32, linux64, linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint, mt, mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od, openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, popmaildir, poweroff, printenv, printf, ps, pscan, pwd, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot, reformime, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont, setkeycodes, setlogcons, setsid, setuidgid, sh, sha1sum, sha256sum, sha512sum, showkey, slattach, sleep, smemcap, softlimit, sort, split, start-stop-daemon, stat, strings, stty, su, sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true, tty, ttysize, tunctl, udhcpc, udhcpd, udpsvd, umount, uname, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, wall, watch, watchdog, wc, wget, which, who, whoami, xargs, xz, xzcat, yes, zcat, zcip
UPDATE: I forgot to say that you can also run: busybox --install
It will add all of the symlinks automatically but, I have no idea the effect on the NookColor at this time so, I don't recommend it. Just select the commands you need. I will look to see if there is a way to put the commands in a specified directory using the install command and will update everyone.
UPDATE2: busybox --install doesn't work properly because it is expecting a /bin, /sbin, /usr/bin, etc... type system and the NookColor is /system/bin, /system/sbin, etc... I was going to play around with chroot and try the install to see if I would break anything but, I was worried that it would existing files and that would leave me only the toolbox version of the command. So, since /system/xbin is last in the path, I decided to write a while loop to add all of the symlinks to the /system/xbin directory. This is messy and I am sure there are simpler ways of doing this but, I am very tired, it works awesomely for me and my NookColor is running without any issues.
Here is what I did (USE AT YOUR OWN RISK):
mount -o remount,rw /dev/block/mmcblk0p5 /system
cd /system/xbin
ln -s busybox grep
ln -s busybox sed
busybox | grep "," | grep -v C | sed 's/,/\n/g' | while read name; do ln -s busybox $name; done
mount -o remount,ro /dev/block/mmcblk0p5 /system
Now, when I type a command like mv, it uses /system/bin/mv but, if I need to use busybox's mv, I can just use the command /system/xbin/mv. For instance, the default "ls" command doesn't have many sort options. The busybox one has several.
|