[LG Optimus Black] spoutnik000:
[HOWTO] Root (via application) - Additionnal Manual Instructions

Rooted eventually, but with some issues all along the path.

Since this may happen to others, I'll give you some details.

My config before rooting:

Android Version: Android v2.2.2 build FRG83G

Software Version: LG-P970-V11b

- First I followed the instructions in Post #1 and installed GingerBreak v1.20

--> everything worked fine and at reboot I could see in the app drawer the SuperUser app. I tried then to connect the shell as su and it worked as well.

BUT BUT BUT

I needed Titanium Backup so I installed it.

The opening screen gives me a warning screen pop-up that states:

BusyBox works but the "su" command does not elevate to root: "whoami" reports "whoami: applet not found" instead of root/uid 0.

I think your "Superuser Whitelist" system app does not work. Please check with your ROM provider.

There is therefore a problem with the busybox install that was done through GingerBreak...

On another forum, I found out the following information:

Ok, got the "whoami" issue sorted out by installing BusyBox from the "Problems?" button

I installed therefore busybox this way and it actually makes Titanium Backup work properly.

It is a good start, but it would be much better to have busybox installed properly system wide so it can be used by any application.

So let's move it to the system and re-install it.

You'll find below the command lines I used to do this.

D:\android-sdk-windows\platform-tools>adb shell
$ su
su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# cd /data/data/com.keramidas.TitaniumBackup
cd /data/data/com.keramidas.TitaniumBackup
# cd files
cd files
# ls
ls
sqlite3
busybox
# ./busybox
./busybox
BusyBox v1.16.0 (2010-01-29 22:31:34 CET) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
or: function [arguments]...

BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.

Currently defined functions:
[, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash, awk,
basename, bbconfig, beep, blkid, 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, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, du,
dumpkmap, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake,
expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat,
fdisk, fgrep, find, findfs, 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, lzmacat, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev,
mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.minix, mkfs.vfat, mknod,
mkpasswd, mkswap, mktemp, modprobe, more, mount, mountpoint, msh, mt,
mv, nameif, nc, netstat, nice, nmeter, nohup, nslookup, 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, rm, rmdir, rmmod, route,
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, 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, true, tty, ttysize, tunctl, udpsvd, umount,
uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unzip,
uptime, usleep, uudecode, uuencode, vconfig, vi, vlock, volname, watch,
watchdog, wc, wget, which, who, whoami, xargs, yes, zcat, zcip

# rm /system/xbin/busybox
rm /system/xbin/busybox
# cat ./busybox>/system/xbin/busybox
cat ./busybox>/system/xbin/busybox
# ls /system/xbin/bu*
ls /system/xbin/bu*
/system/xbin/busybox
# cat ./busybox>./busybox.bak
cat ./busybox>./busybox.bak
# ls
ls
busybox.bak
sqlite3
busybox
# rm ./busybox
rm ./busybox
# cd /system/xbin
cd /system/xbin
# chmod 755 busybox
chmod 755 busybox
# busybox --install /system/xbin
busybox --install /system/xbin
# sync
sync
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system
#

Then, let's deal with superuser apps permissions:

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# cd /system/bin
cd /system/bin
# ls -l su
ls -l su
-rwsr-sr-x root root 26264 2011-07-19 17:53 su
# chmod 4777 /system/bin/su
chmod 4777 /system/bin/su
# ls -l su
ls -l su
-rwsrwxrwx root root 26264 2011-07-19 17:53 su
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system

Then let's check PATH env var:

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# echo $PATH
echo $PATH
/sbin:/system/sbin:/system/bin:/system/xbin

(if one of the paths is missing, add it the following way:
export PATH=$PATH:/system/bin
)

# mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system

At last, let's move the superuser apk from the Titanium Backup folder to the system:

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system

# busybox find / -name sup*
busybox find / -name sup*
/data/data/eu.chainfire.gingerbreak/files/superuser.png
/data/data/eu.chainfire.gingerbreak/files/superuser.apk
# cd /data/data/eu.chainfire.gingerbreak/files
cd /data/data/eu.chainfire.gingerbreak/files
# ls
ls
gingerbreak.png
rooted
install.png
install.sh
superuser.png
su
boomsh
su.png
gingerbreak
superuser.apk
# cat ./superuser.apk > /system/app/superuser.apk
cat ./superuser.apk > /system/app/superuser.apk
# ls -l superuser.apk
ls -l superuser.apk
-rwxr-xr-x app_108 app_108 196521 2011-07-19 17:52 superuser.apk
# chmod 4777 /system/app/superuser.apk
chmod 4777 /system/app/superuser.apk
# ls -l /system/app/superuser.apk
ls -l /system/app/superuser.apk
-rwsrwxrwx root root 196521 2011-07-20 00:48 superuser.apk
#

# cat superuser.apk > superuser.apk.bak
cat superuser.apk > superuser.apk.bak
# rm superuser.apk
rm superuser.apk
#

# mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system
mount -o remount,ro -t yaffs2 /dev/block/mtdblock4 /system

At last, let's reboot:

# reboot
reboot

After these steps, busybox, su and superuser.apk are properly installed system wide and Titanium Backup works properly and displays:

Root Access: OK (BusyBox 1.16.0 from the system)

Hope this might be useful to others having the same kind of issue.

spout