View Single Post
Posts: 395 | Thanked: 509 times | Joined on Jan 2011 @ Brisbane, Australia
#76
Originally Posted by damion View Post
# HOWTO:

# I've put hashes at the start of the line, so you could practically execute
# This file and expect it to work to a degree.

# bring up a terminal and from within /home/user (the default):

wget http://a.trap.me.uk/qemu-i386
chmod 755 ./qemu-i386

# test it works

./qemu-i386

# If this seems to output directions for use, this is working.

sudo gainroot

mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
echo ':i386:M::\x7fELF\x01\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x02\x00\x03:\xff\xff\xff\xff\xff\x fe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff \xff:/home/user/qemu-i386:' >/proc/sys/fs/binfmt_misc/register

# Your phone can now execute arbitrary statically linked x86 binaries
# or with some effort, (./ld-linux.so.2 --library-path `pwd` ./filename)
# any x86 linux binary.

# Set up the chroot with wine...

# I tarred up /etc /usr/lib /usr/X11/lib /usr/X11/bin /usr/bin /lib /bin /sbin
# from (it turns out) an old slackware 10.2 install that had had wine
# installed at some point in the past, ~version 0.9.14.

# extract the chroot in to /chroot (or wherever you want that has space)
# ... actually DON'T use rootfs space, but I'll use /chroot for ease of
# writing this.

# as root

cd /chroot
mkdir -p proc dev tmp/.X11-unix
chmod 777 tmp && chmod +t tmp
# I can't remember the octal for sticky in one go

# copy the phone's /dev, something like:

tar cf blah.tar /dev && tar xf blah.tar

# by default tar strips the leading / so this probably works.

mount -o bind /tmp/.X11-unix tmp/.X11-unix
mount -t proc none proc
mount -t devpts dev/pts

vi etc/mtab etc/passwd

# ... edit to suit your needs. mtab should be small with mainly just /
# referenced, in passwd put a user:29999 account

# TEST full x86 chroot!!!

chroot /chroot

# You should see: bash-2.0# Or similar, and stuff like ls should work!

su - user

export DISPLAY=:0

/usr/X11/bin/xterm

# Oh I needed a symblink for X11 to X11R6 too, I also think I edited
# /etc/ld.so.conf to contain X libs, also I lack terminal definition files
# from that list of directories so I can't do some curses stuff.

# After your success running xterm as x86, which itself fork()ed bash
# again and showed a pretty impressive speed, you're 95% of the way
# there.

# Copy existing known .wine/ hierarchy ??? I think I happened to have
# one in /home/damion from where I nabbed the x86 chroot stuff.

# Then...

wine-pthread ./sol.exe

# Obviously you'll need sol.exe from XP or something and obviously you
# can use whatever wine stuff you need, not just sol You need
# wine-pthread, wine on its own segvs for me. I used to run wineserver
# 1st, but wine-pthread can successfully fork wineserver within this
# chroot without issue for me.

# Profit.
# I tarred up /etc /usr/lib /usr/X11/lib /usr/X11/bin /usr/bin /lib /bin /sbin
# from (it turns out) an old slackware 10.2 install that had had wine
# installed at some point in the past, ~version 0.9.14.

# extract the chroot in to /chroot (or wherever you want that has space)
# ... actually DON'T use rootfs space, but I'll use /chroot for ease of
# writing this.

I tar those from another system, then what? Where to I extract them? Whats the chroot? Where doesnt use rootfs space?