[XPERIA X10 Android Development] j4mm3r:
errr... why not the init scripts? you can modify any file that you want. I'm still checking the issue with the id.

I ran strace on a binary and basically its the egid which is 0 so.

# strace id
strace id
execve("/system/bin/id", ["id"], [/* 8 vars */]) = 0
syscall_983045(0x700189fc, 0, 0x7ee18da4, 0x1, 0x700189fc, 0x7ee18da0, 0x70010448, 0xf0005, 0, 0, 0, 0, 0, 0x7ee18d48, 0x700016e9, 0x7000222c, 0x10, 0x700189fc, 0, 0, 0xc764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
getpid() = 6507
sigaction(SIGILL, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
sigaction(SIGABRT, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
sigaction(SIGBUS, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
sigaction(SIGFPE, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
sigaction(SIGSEGV, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
sigaction(SIGSTKFLT, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
sigaction(SIGPIPE, {0x70001c95, [], SA_RESTART}, {SIG_DFL}, 0) = 0
stat64("/system/lib/liblog.so", {st_mode=S_IFREG|0644, st_size=13488, ...}) = 0
open("/system/lib/liblog.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\f\20\0\000"..., 4096) = 4096
lseek(3, -8, SEEK_END) = 13480
read(3, "\0\0\274oPRE ", 8) = 8
mmap2(0x6fbc0000, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6fbc0000
mmap2(0x6fbc0000, 10724, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x6fbc0000
mprotect(0x6fbc0000, 12288, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x6fbc3000, 368, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3) = 0x6fbc3000
close(3) = 0
stat64("/system/lib/libc.so", {st_mode=S_IFREG|0644, st_size=243988, ...}) = 0
open("/system/lib/libc.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\320\242"..., 4096) = 4096
lseek(3, -8, SEEK_END) = 243980
read(3, "\0\0\340oPRE ", 8) = 8
mmap2(0x6fe00000, 290816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6fe00000
mmap2(0x6fe00000, 230024, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x6fe00000
mprotect(0x6fe00000, 233472, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x6fe39000, 8544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x39) = 0x6fe39000
mmap2(0x6fe3c000, 42280, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x6fe3c000
close(3) = 0
mprotect(0x6fe00000, 233472, PROT_READ|PROT_EXEC) = 0
getuid32() = 2000
geteuid32() = 0
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR)
close(3) = 0
gettid() = 6507
syscall_983045(0x6fe43b10, 0, 0x40, 0, 0x6fe43c10, 0x7edf9000, 0x7ee18ba0, 0xf0005, 0, 0, 0, 0, 0, 0x7ee18b88, 0x6fe1fdc3, 0x6fe0d34c, 0x60000010, 0x6fe43b10, 0, 0, 0xc764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
mmap2(NULL, 131072, PROT_READ, MAP_SHARED, 9, 0) = 0x2aaab000
open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 3
read(3, "\345\347\3004", 4) = 4
close(3) = 0
stat64("/system/lib/libstdc++.so", {st_mode=S_IFREG|0644, st_size=5124, ...}) = 0
open("/system/lib/libstdc++.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\234\10\0"..., 4096) = 4096
lseek(3, -8, SEEK_END) = 5116
read(3, "\0\0\320oPRE ", 8) = 8
mmap2(0x6fd00000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6fd00000
mmap2(0x6fd00000, 2860, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x6fd00000
mprotect(0x6fd00000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x6fd01000, 232, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1) = 0x6fd01000
close(3) = 0
mprotect(0x6fd00000, 4096, PROT_READ|PROT_EXEC) = 0
getuid32() = 2000
geteuid32() = 0
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR)
close(3) = 0
stat64("/system/lib/libm.so", {st_mode=S_IFREG|0644, st_size=91056, ...}) = 0
open("/system/lib/libm.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\34\0"..., 4096) = 4096
lseek(3, -8, SEEK_END) = 91048
read(3, "\0\0\300oPRE ", 8) = 8
mmap2(0x6fc00000, 94208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6fc00000
mmap2(0x6fc00000, 88856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x6fc00000
mprotect(0x6fc00000, 90112, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x6fc16000, 204, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x16) = 0x6fc16000
close(3) = 0
mprotect(0x6fc00000, 90112, PROT_READ|PROT_EXEC) = 0
getuid32() = 2000
geteuid32() = 0
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR)
close(3) = 0
mprotect(0x6fbc0000, 12288, PROT_READ|PROT_EXEC) = 0
getuid32() = 2000
geteuid32() = 0
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR)
close(3) = 0
stat64("/system/lib/libcutils.so", {st_mode=S_IFREG|0644, st_size=59308, ...}) = 0
open("/system/lib/libcutils.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0001\0\000"..., 4096) = 4096
lseek(3, -8, SEEK_END) = 59300
read(3, "\0\0\260oPRE ", 8) = 8
mmap2(0x6fb00000, 122880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x6fb00000
mmap2(0x6fb00000, 53584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x6fb00000
mprotect(0x6fb00000, 57344, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x6fb0e000, 1076, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe) = 0x6fb0e000
mmap2(0x6fb0f000, 57732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x6fb0f000
close(3) = 0
mprotect(0x6fb00000, 57344, PROT_READ|PROT_EXEC) = 0
getuid32() = 2000
geteuid32() = 0
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR)
close(3) = 0
mprotect(0x8000, 69632, PROT_READ|PROT_EXEC) = 0
getuid32() = 2000
geteuid32() = 0
open("/dev/null", O_RDWR|O_LARGEFILE) = 3
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(2, F_GETFL) = 0x2 (flags O_RDWR)
close(3) = 0
getgroups32(64, [1003, 1004, 1007, 1011, 1015, 3001, 3002, 3003]) = 8
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aacb000
mprotect(0x2aacb000, 4096, PROT_READ) = 0
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
brk(0) = 0x1e000
brk(0x1e000) = 0x1e000
brk(0x1f000) = 0x1f000
mprotect(0x2aacb000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2aacb000, 4096, PROT_READ) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
getuid32() = 2000
getgid32() = 2000
write(1, "uid=2000(shell) gid=2000(shell) "..., 145uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet)
) = 145
mprotect(0x2aacb000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x2aacb000, 4096, PROT_READ) = 0
munmap(0x2aacb000, 4096) = 0
exit_group(0) = ?
Process 6507 detached
#