@@ -15,6 +15,8 @@ PINLOCK=false
1515KEYLOCK=false
1616SUDO="echo $PASSWORD | sudo -S"
1717NUM_JOBS='$(( `grep -c ^processor /proc/cpuinfo` + 1 ))'
18+FLIPPED=false
19+CHROOT_PREFIX="/data/ubuntu"
1820
1921usage() {
2022 echo "usage: run_on_device [OPTIONS]\n"
@@ -35,7 +37,11 @@ exec_with_ssh() {
3537}
3638
3739exec_with_adb() {
38− adb shell chroot /data/ubuntu /usr/bin/env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin "$@"
40+ if $FLIPPED; then
41+ adb shell $@
42+ else
43+ adb shell chroot /data/ubuntu /usr/bin/env -i PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin "$@"
44+ fi
3945}
4046
4147adb_root() {
@@ -45,7 +51,7 @@ adb_root() {
4551
4652install_ssh_key() {
4753 ssh-keygen -R $TARGET_IP
48− HOME_DIR=/data/ubuntu/home/phablet
54+ HOME_DIR="${CHROOT_PREFIX}/home/phablet"
4955 adb push ~/.ssh/id_rsa.pub $HOME_DIR/.ssh/authorized_keys
5056 adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh
5157 adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh/authorized_keys
@@ -79,14 +85,15 @@ build() {
7985}
8086
8187run() {
82− SERVICEFILE="/data/ubuntu/etc/device-services"
88+ SERVICEFILE="${CHROOT_PREFIX}/etc/device-services"
8389 adb shell "egrep '$BINARY|qml-phone-shell' $SERVICEFILE"
8490 CONTAINS_SHELL=$?
8591 if [ $CONTAINS_SHELL -eq 0 ]; then
8692 echo "Modifying $SERVICEFILE on device. Old contents will be saved in $SERVICEFILE.backup"
8793 adb shell cp $SERVICEFILE $SERVICEFILE.backup
8894 adb shell sed -i "/$BINARY\\\\\|qml-phone-shell/d" $SERVICEFILE
89− adb shell "chroot /data/ubuntu /usr/bin/service ubuntu-session restart"
95+ if $FLIPPED; then exec_with_adb /usr/bin/service ubuntu-touch-session restart
96+ else exec_with_adb /usr/bin/service ubuntu-session restart; fi
9097 fi
9198 adb shell pkill qml-phone-shell
9299 adb shell pkill $BINARY
@@ -106,7 +113,8 @@ run() {
106113 if [ $CONTAINS_SHELL -eq 0 ]; then
107114 echo "Restoring $SERVICEFILE on device from $SERVICEFILE.backup"
108115 adb shell cp $SERVICEFILE.backup $SERVICEFILE
109− adb shell "chroot /data/ubuntu /usr/bin/service ubuntu-session restart"
116+ if $FLIPPED; then exec_with_adb /usr/bin/service ubuntu-touch-session restart
117+ else exec_with_adb /usr/bin/service ubuntu-session restart; fi
110118 fi
111119}
112120
@@ -130,6 +138,16 @@ done
130138adb_root
131139[ "${TARGET_IP}" = "127.0.0.1" ] && setup_adb_forwarding
132140
141+if [ "`adb shell 'grep -q Ubuntu /etc/lsb-release 2> /dev/null && echo -n FLIPPED'`" = "FLIPPED" ]; then
142+ FLIPPED=true
143+ CHROOT_PREFIX=""
144+ if [ "${TARGET_IP}" != "127.0.0.1" ]; then
145+ echo "ERROR: Flipped image detected, adb over TCP/IP isn't supported, yet :/"
146+ echo "Unset TARGET_IP and try again."
147+ exit 2
148+ fi
149+fi
150+
133151if $SETUP; then
134152 echo "Setting up environment for building shell.."
135153 install_ssh_key