PhabletChroot
Creating a chroot environment on a ubuntu phone or tablet
Preparing the chroot environment
1 - create a chroot in your phone's home dir (eg /home/phablet/vivid-chroot) with debootstrap
$ sudo su $ apt-get update && apt-get install debootstrap --yes && debootstrap --variant=buildd vivid /home/phablet/vivid-chroot
In case debootstrap complains about nodev/noexec (you only need that for debootstrap):
$ sudo mount -o remount,dev /home
2 - outside the chroot, as root:
$ cp /etc/apt/sources.list /home/phablet/vivid-chroot/etc/apt/sources.list && cp -r /etc/apt/sources.list.d /home/phablet/vivid-chroot/etc/apt && cp /etc/apt/trusted.gpg /home/phablet/vivid-chroot/etc/apt && cp -r /etc/apt/trusted.gpg.d /home/phablet/vivid-chroot/etc/apt && cp /etc/hosts /home/phablet/vivid-chroot/etc/hosts && echo vivid-chroot > /home/phablet/vivid-chroot/etc/debian_chroot
3 - inside the chroot, create a phablet user with the same uid and gid as outside the chroot.
Helps with copying stuff form/to the real to the chrooted home dirs. Also enables you to "scp some-file phablet@device_ip:/home/phablet/vivid-chroot/home/phablet" from your desktop.
$ addgroup --gid 32011 phablet && adduser --uid 32011 --gid 32011 phablet && apt-get update && apt-get install sudo && adduser phablet sudo
4 - still inside the chroot:
$ su phablet $ mkdir /home/phablet/real_root
5 - outside the chroot, run this script as root (this step has to be done after every boot unless you wanna play with fstab):
mount --bind /proc /home/phablet/vivid-chroot/proc mount --bind /dev /home/phablet/vivid-chroot/dev mount --bind / /home/phablet/vivid-chroot/home/phablet/real_root
Building and installing from inside the chroot (logged as phablet):
1 - When configuring projects make sure they install to /usr. Eg:
qmake PREFIX=/usr [...] cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr [...]
- I also never build tests on the device. qtmir and unity8 have -DNO_TESTS=true for that.
2 - build normally.
- eg: make -j4
3 - To install, do:
$ sudo make install DESTDIR=/home/phablet/real_root
PhabletChroot (last edited 2016-06-22 14:07:15 by localhost)