~popey/+junk/phablet-flash-wrapper

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