Merge lp:~dmitry-sandalov/humpolec/humpolec into lp:humpolec

Proposed by Dmitry Sandalov
Status: Work in progress
Proposed branch: lp:~dmitry-sandalov/humpolec/humpolec
Merge into: lp:humpolec
Diff against target: 228 lines (+224/-0)
1 file modified
dualboot.sh (+224/-0)
To merge this branch: bzr merge lp:~dmitry-sandalov/humpolec/humpolec
Reviewer Review Type Date Requested Status
The Humpolec team Pending
Review via email: mp+205509@code.launchpad.net

Description of the change

spelling mistake

To post a comment you must log in.

Unmerged revisions

2. By Dmitry Sandalov

Spelling mistake

1. By Ondrej Kubik

dualboot.sh install script

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'dualboot.sh'
2--- dualboot.sh 1970-01-01 00:00:00 +0000
3+++ dualboot.sh 2014-02-09 21:54:13 +0000
4@@ -0,0 +1,224 @@
5+#!/bin/bash
6+
7+ACTION=$1
8+SCRIPT_NAME=dualboot.sh
9+# Used version of CWM recovery
10+URL_CMW_PATH_MAKO="http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.4.3-mako.img"
11+URL_CMW_PATH_HAMMERHEAD="http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.4.5-hammerhead.img"
12+URL_CMW_PATH_GROUPER="http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.4.3-grouper.img"
13+URL_CMW_PATH_MAGURO="http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.4.3-maguro.img"
14+URL_CMW_PATH_MANTA="http://download2.clockworkmod.com/recoveries/recovery-clockwork-6.0.4.3-manta.img"
15+URL_SUPERU_1_86="http://download.chainfire.eu/372/SuperSU/UPDATE-SuperSU-v1.86.zip?retrieve_file=1"
16+URL_U_INSTALLER_PACKAGE="http://humpolec.ubuntu.com/UPDATE-UbuntuInstaller.zip"
17+CACHE_RECOVERY=/cache/recovery
18+TEMP_FOLDER=humpTemp
19+RECOVERY_IMAGE=recovery.img
20+SU_PACKAGE=UPDATE-SuperSU-v1.86.zip
21+UBUNTU_INSTALLER_PACKAGE=UPDATE-UbuntuInstaller.zip
22+RECOVERY_URL=
23+DEVICE=
24+CM_DEVICE=
25+
26+# get device model
27+detect_device() {
28+ echo "Connect device to install Ubuntu installer to."
29+ DEVICE=$(adb wait-for-device shell getprop ro.product.device)
30+ CM_DEVICE=$(adb wait-for-device shell getprop ro.cm.device)
31+
32+ if [[ "$DEVICE" == mako* ]]; then
33+ echo "Detected connected Nexus 4"
34+ RECOVERY_URL=$URL_CMW_PATH_MAKO
35+ else if [[ "$DEVICE" == maguro* ]]; then
36+ echo "Detected connected Galaxy Nexus"
37+ RECOVERY_URL=$URL_CMW_PATH_MAGURO
38+ else if [[ "$DEVICE" == grouper* ]]; then
39+ echo "Detected connected Nexus 7"
40+ RECOVERY_URL=$URL_CMW_PATH_GROUPER
41+ else if [[ "$DEVICE" == manta* ]]; then
42+ echo "Detected connected Nexus 10"
43+ RECOVERY_URL=$URL_CMW_PATH_MANTA
44+ else if [[ "$DEVICE" == hammerhead* ]]; then
45+ echo "Detected connected Nexus 5"
46+ RECOVERY_URL=$URL_CMW_PATH_HAMMERHEAD
47+ else
48+ echo "Connected device is not supported"
49+ exit 0
50+ fi
51+ fi
52+ fi
53+ fi
54+ fi
55+}
56+
57+
58+print_usage() {
59+ echo "Welcome to Humpolec. This is Ubuntu-Android dualboot enabler"
60+ echo "Please connect supported phone with adb enabled"
61+ echo " "
62+ echo "$SCRIPT_NAME action"
63+ echo " "
64+ echo " actions:"
65+ echo " HELP: Prints this help"
66+ echo " FULL: Full installation: this will install SuperUser package as well Ubuntu dualboot installer."
67+ echo " Use this if you don't have SuperUser package installed on your device."
68+ echo " Typical first time choice for unmodified factory images clean AOSP builds"
69+ echo " Installation will reboot twice into the recovery, if prompterd **** when exiting recovery, answer NO"
70+ echo " UPDATE: Updates application: this will install Ubuntu dualboot installer. It assumes there is alresdy Super User installed"
71+ echo " Typical option for for CyanogenMod or other similar builds."
72+ echo " Use this option if you already have Ubuntu dualboot installer installed and are only upgrading"
73+ echo " Installation will reboot twice into the recovery, if prompterd when existing recovery, answer NO"
74+ echo " INSTALL_SU: Installs Superuser"
75+ echo " FIX_MAKO_RADIO: Install 4.3 radio image"
76+ echo " !!! Use this only if you are running on Nexus 4 running Android 4.4.x and experiencing audio issue during call"
77+ echo " !!! Do NOT USE this on any other phone than Nexus 4!!!"
78+}
79+
80+wait_for_adb() {
81+ MODE=$1
82+ echo "Waiting for $MODE to boot"
83+ RECOVERY_STATE=$(adb devices)
84+ while ! [[ "$RECOVERY_STATE" == *$MODE ]]
85+ do
86+ sleep 1
87+ RECOVERY_STATE=$(adb devices)
88+ done
89+}
90+
91+print_ask_help() {
92+ echo "For more information refer to $ $SCRIPT_NAME HELP"
93+}
94+
95+create_temp_dir() {
96+ mkdir $TEMP_FOLDER
97+ cd $TEMP_FOLDER
98+}
99+
100+delete_temp_dir() {
101+ cd ..
102+ rm -rf $TEMP_FOLDER
103+}
104+
105+download_su_package() {
106+ echo "Downloading SU package"
107+ # check downloaded file size, this often fails, so retry. Expected size is 1184318
108+ download_file $URL_SUPERU_1_86 $SU_PACKAGE 1184000
109+}
110+
111+download_app_update() {
112+ echo "Downloading Ubuntu Installer application package"
113+ # check downloaded file size, this often fails, so retry. Expected size is 2309120
114+ download_file $URL_U_INSTALLER_PACKAGE $UBUNTU_INSTALLER_PACKAGE 2309000
115+}
116+
117+download_recovery() {
118+ echo "Downloading recovery for $DEVICE"
119+ # check downloaded file size, this often fails, so retry. any recovery should be more than 5M
120+ download_file $RECOVERY_URL $RECOVERY_IMAGE 5000000
121+}
122+
123+download_file() {
124+ DOWNLOAD_URL=$1
125+ FILENAME=$2
126+ TARGET_SIZE=$3
127+ SIZE=1
128+ # check downloaded file size, this often fails, so retry. Expected size is TARGET_SIZE
129+ while [[ $TARGET_SIZE -ge $SIZE ]]
130+ do
131+ curl $DOWNLOAD_URL > $FILENAME
132+ SIZE=$(ls -la $FILENAME | awk '{ print $5}')
133+ echo "Downloaded file has size: $SIZE"
134+ done
135+}
136+
137+install_su() {
138+ echo "Rebooting to bootloader"
139+ adb wait-for-device reboot bootloader
140+ fastboot boot $RECOVERY_IMAGE
141+ wait_for_adb recovery
142+ echo "Creating update command"
143+ adb shell rm -rf $CACHE_RECOVERY
144+ adb shell mkdir $CACHE_RECOVERY
145+ adb shell "echo -e '--sideload' > $CACHE_RECOVERY/command"
146+ echo "Booting back to bootloader"
147+ adb reboot bootloader
148+ fastboot boot $RECOVERY_IMAGE
149+ wait_for_adb sideload
150+ adb sideload $SU_PACKAGE
151+ echo "Wait for installation of package to complete"
152+}
153+
154+install_ubuntu_installer() {
155+ echo "Rebooting to bootloader"
156+ adb wait-for-device reboot bootloader
157+ fastboot boot $RECOVERY_IMAGE
158+ wait_for_adb recovery
159+ echo "Creating update command"
160+ adb shell rm -rf $CACHE_RECOVERY
161+ adb shell mkdir $CACHE_RECOVERY
162+ adb shell "echo -e '--sideload' > $CACHE_RECOVERY/command"
163+ echo "Booting back to bootloader"
164+ adb reboot bootloader
165+ fastboot boot $RECOVERY_IMAGE
166+ wait_for_adb sideload
167+ adb sideload $UBUNTU_INSTALLER_PACKAGE
168+ echo "Wait for installation of package to complete"
169+ echo "If you are asked to preserve possibly lost root access"
170+ echo "Or if device should be rooted"
171+ echo "This is false warning and you can answer either yes or no"
172+}
173+
174+check_build_for_su_update() {
175+ if [[ "$CM_DEVICE" == "$DEVICE" ]]; then
176+ echo "!!! This seems to be CyanogenMod build, you already have SuperUser as part of the system"
177+ echo "Go to Settings->SuperUser->Settings and make sure it is enabled for applications"
178+ echo "For installation, use: $ $SCRIPT_NAME UPDATE"
179+ print_ask_help
180+ exit 0;
181+ fi
182+}
183+
184+if [[ "$ACTION" == HELP ]]; then
185+ echo "HELP"
186+ print_usage
187+else if [[ "$ACTION" == FULL ]]; then
188+ detect_device
189+ check_build_for_su_update
190+ echo "FULL install"
191+ create_temp_dir
192+ download_su_package
193+ download_app_update
194+ download_recovery
195+
196+ install_ubuntu_installer
197+ install_su
198+
199+ delete_temp_dir
200+else if [[ "$ACTION" == INSTALL_SU ]]; then
201+ detect_device
202+ check_build_for_su_update
203+ echo "INSTALL_SU"
204+ create_temp_dir
205+ download_su_package
206+ download_recovery
207+
208+ install_su
209+
210+ delete_temp_dir
211+else if [[ "$ACTION" == UPDATE ]]; then
212+ detect_device
213+ create_temp_dir
214+ echo "UPDATE install"
215+ download_app_update
216+ download_recovery
217+
218+ install_ubuntu_installer
219+
220+ delete_temp_dir
221+else
222+ echo "Unknow action"
223+ print_ask_help
224+fi
225+fi
226+fi
227+fi
228+

Subscribers

People subscribed via source and target branches