1
by Alan Pope
initial version to add ppas and apps |
1 |
#!/bin/bash
|
2
by Alan Pope
add backup and restore options |
2 |
# Script to wrap phablet-flash
|
3 |
#
|
|
4 |
# Script does the following:-
|
|
5 |
# * Backup (cookies etc) but not photos/videos
|
|
6 |
# * Flash device (via phablet-flash)
|
|
7 |
# * Add applications from collections PPA
|
|
8 |
# * Restore data
|
|
9 |
# * Reboot
|
|
10 |
#
|
|
11 |
# Assumptions:-
|
|
12 |
# * Device already running some build of Ubuntu Touch and is connected via USB
|
|
13 |
# * You're on Wifi and want the device to be on the same Wifi network
|
|
14 |
#
|
|
15 |
# (c) 2013 Canonical - Alan Pope alan.pope@canonical.com
|
|
16 |
||
17 |
UBUNTU_ROOT="/data/ubuntu" |
|
18 |
BACKUP_LOCATION="$HOME/Downloads" |
|
19 |
DATESTAMP=`date +%Y%m%d`-`date +%H%M%S` |
|
20 |
||
21 |
function adb_root { |
|
22 |
echo ":: Run adb root" |
|
23 |
adb root |
|
24 |
if [ $? -ne "0" ]; then |
|
25 |
echo ":: adb root failed" |
|
26 |
exit 1 |
|
27 |
fi
|
|
28 |
}
|
|
29 |
||
30 |
function pause { |
|
3
by Alan Pope
Fix scripts so restore actually restores to the right place. Doh |
31 |
echo ":: Wait $1" |
2
by Alan Pope
add backup and restore options |
32 |
sleep $1
|
33 |
}
|
|
34 |
||
3
by Alan Pope
Fix scripts so restore actually restores to the right place. Doh |
35 |
function wait_for_device { |
36 |
echo -n ":: Waiting for device to come back ." |
|
37 |
STATE="unknown" |
|
38 |
while [ "$STATE" == "unknown" ]; |
|
39 |
do
|
|
40 |
echo -n "." |
|
41 |
STATE=`adb get-state` |
|
42 |
sleep 15
|
|
43 |
done
|
|
44 |
echo " " |
|
45 |
}
|
|
46 |
||
2
by Alan Pope
add backup and restore options |
47 |
echo ":: Build script to do backup" |
48 |
TMP_FILE=$(mktemp) |
|
49 |
||
50 |
adb_root |
|
51 |
||
52 |
pause 5
|
|
53 |
||
54 |
echo ":: Delete old zip files to possibly regain space from /sdcard" |
|
55 |
adb shell rm -r /sdcard/*.zip |
|
56 |
||
57 |
cat > $TMP_FILE << 'EOF' |
|
58 |
#!/bin/bash
|
|
59 |
/bin/tar zcf /home/phablet.tgz --exclude=/home/phablet/Pictures/* --exclude=/home/phablet/Videos/* /home/phablet
|
|
60 |
EOF
|
|
61 |
||
62 |
echo ":: Run backup" |
|
63 |
adb push $TMP_FILE $UBUNTU_ROOT/$TMP_FILE |
|
64 |
adb shell chmod 755 $UBUNTU_ROOT/$TMP_FILE |
|
65 |
adb shell chroot $UBUNTU_ROOT $UBUNTU_ROOT/$TMP_FILE |
|
66 |
||
67 |
echo ":: Download backup to this computer" |
|
68 |
adb pull $UBUNTU_ROOT/home/phablet.tgz $BACKUP_LOCATION/phablet.tgz |
|
69 |
mv $BACKUP_LOCATION/phablet.tgz $BACKUP_LOCATION/$DATESTAMP-phablet.tgz |
|
70 |
ls -l $BACKUP_LOCATION/$DATESTAMP-phablet.tgz |
|
71 |
file $BACKUP_LOCATION/$DATESTAMP-phablet.tgz |
|
72 |
||
73 |
echo ":: Delete backup file from device" |
|
74 |
adb shell rm -r $UBUNTU_ROOT/home/phablet.tgz
|
|
75 |
||
76 |
echo ":: Flash device" |
|
77 |
phablet-flash |
|
78 |
FLASH_RESULT=$? |
|
79 |
if [ $FLASH_RESULT == "0" ]; then |
|
80 |
echo ":: Flash success" |
|
81 |
else
|
|
82 |
echo ":: Flash failed" |
|
83 |
exit 1 |
|
84 |
fi
|
|
85 |
||
3
by Alan Pope
Fix scripts so restore actually restores to the right place. Doh |
86 |
wait_for_device |
1
by Alan Pope
initial version to add ppas and apps |
87 |
|
88 |
# Setup network on device
|
|
2
by Alan Pope
add backup and restore options |
89 |
adb_root |
90 |
pause 5
|
|
1
by Alan Pope
initial version to add ppas and apps |
91 |
echo ":: Setup network" |
2
by Alan Pope
add backup and restore options |
92 |
phablet-network-setup |
5
by Alan Pope
5 seconds isn't long enough for network to come up, increased delay |
93 |
pause 10
|
2
by Alan Pope
add backup and restore options |
94 |
echo ":: Build script to do post-install tasks" |
1
by Alan Pope
initial version to add ppas and apps |
95 |
TMP_FILE=$(mktemp) |
96 |
||
97 |
cat > $TMP_FILE << 'EOF' |
|
98 |
#!/bin/bash
|
|
99 |
export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
|
|
100 |
add-apt-repository -y ppa:ubuntu-touch-coreapps-drivers/collection
|
|
101 |
add-apt-repository -y ppa:ubuntu-touch-coreapps-drivers/daily
|
|
102 |
apt-get update
|
|
2
by Alan Pope
add backup and restore options |
103 |
apt-get install --yes touch-collection touch-coreapps
|
1
by Alan Pope
initial version to add ppas and apps |
104 |
perl -p -i -e 's/false/true/' /usr/share/qml-phone-shell/Dash/Apps/ApplicationsFilterGrid.qml
|
105 |
EOF
|
|
106 |
||
107 |
echo ":: Installing apps" |
|
2
by Alan Pope
add backup and restore options |
108 |
adb push $TMP_FILE $UBUNTU_ROOT/$TMP_FILE |
109 |
adb shell chmod 755 $UBUNTU_ROOT/$TMP_FILE |
|
110 |
adb shell chroot $UBUNTU_ROOT $UBUNTU_ROOT/$TMP_FILE |
|
111 |
||
112 |
echo ":: Upload previously taken backup" |
|
113 |
adb push $BACKUP_LOCATION/$DATESTAMP-phablet.tgz $UBUNTU_ROOT/home/phablet.tgz |
|
114 |
||
115 |
if [ $? -ne "0" ]; then |
|
116 |
echo ":: Restore to device failed. Manual restore of $BACKUP_$LOCATION/$DATESTAMP-phablet.tgz required" |
|
117 |
exit 1 |
|
118 |
fi
|
|
119 |
||
120 |
echo ":: Build script to restore" |
|
121 |
TMP_FILE=$(mktemp) |
|
122 |
||
123 |
cat > $TMP_FILE << 'EOF' |
|
124 |
#!/bin/bash
|
|
3
by Alan Pope
Fix scripts so restore actually restores to the right place. Doh |
125 |
cd /
|
2
by Alan Pope
add backup and restore options |
126 |
/bin/tar zxf /home/phablet.tgz
|
127 |
EOF
|
|
128 |
||
129 |
echo ":: Run restore script" |
|
130 |
adb push $TMP_FILE $UBUNTU_ROOT/$TMP_FILE |
|
131 |
adb shell chmod 755 $UBUNTU_ROOT/$TMP_FILE |
|
132 |
adb shell chroot $UBUNTU_ROOT $UBUNTU_ROOT/$TMP_FILE |
|
133 |
||
134 |
pause 10
|
|
1
by Alan Pope
initial version to add ppas and apps |
135 |
|
136 |
echo ":: Reboot" |
|
137 |
adb reboot |
|
138 |
||
3
by Alan Pope
Fix scripts so restore actually restores to the right place. Doh |
139 |
wait_for_device |
140 |
||
141 |
echo ":: Delete old zip files to possibly regain space from /sdcard" |
|
142 |
adb shell rm -r /sdcard/*.zip |
|
143 |
||
144 |
echo ":: Done" |
|
145 |
||
146 |
||
147 |