So I decided that I would join the CyanogenMod rush and install it on my cell phone, a Motorola Flipside MB508. The installation was really tedious, but only because of the locked boot loader that Motorola put on. Of all the Android devices I have used or abused, I have also never found one that has such a difficult button combination set to log into recovery mode. Most Android devices simply have you hold the down volume button while you turn it on with the power button. The Motorola Flipside, however, requires that you hold the power button and the x key to get to the /! exclamation mark, then press the function key and the volume up and down keys simultaneously to bring up the menu.
If you want to reflash the boot file, however, you need to press the power button while holding the up key.
So, to flash the bootloader, I first needed to get sbf_flash for linux, so I had a tool to work with. I downloaded it here – http://blog.opticaldelusion.org/2010/05/sbfflash.html – but you may find it elsewhere online. After downloading, I needed to make it executable:
$ chmod +x sbf_flash
Of course, I then needed something to flash the phone with, to which end I downloaded BL_917B_4G_sageemu_Consumer_replacer.zip (from http://forum.gsmhosting.com/vbb/f783/motorola-mb-508-boot-loader-sbf-rsd-1434658/). It was then that I turned off my phone, and held the up key while turning the phone back on. After about 10 seconds, I was still seeing a black screen and let go of the buttons thinking that it had failed. However, when I let go, then the screen lit up with a “dos like” screen saying I could connect the phone to the computer via USB, which I did. From the terminal on the computer, I then:
$ ./sbf_flash ./BL_917B_4G_sageemu_Consumer_replacer.sbf
SBF FLASH 1.24 (mbm)
http://opticaldelusion.org
=== BL_917B_4G_sageemu_Consumer_replacer.sbf ===
00: RDL03 0x82000000-0x8204CFFF EC27 AP
01: CG30 0xB0020000-0xB005FFFF CE3B AP
02: CG32 0xB0160000-0xB017FFFF 35B7 AP
>> waiting for phone: FAILED: Could not claim usb interface
(Are you root?)
$ su
Password:
# .sbf_flash ./BL_917B_4G_sageemu_Consumer_replacer.sbf
SBF FLASH 1.24 (mbm)
http://opticaldelusion.org
=== BL_917B_4G_sageemu_Consumer_replacer.sbf ===
00: RDL03 0x82000000-0x8204CFFF EC27 AP
01: CG30 0xB0020000-0xB005FFFF CE3B AP
02: CG32 0xB0160000-0xB017FFFF 35B7 AP
>> waiting for phone: Connected.
>> uploading RDL03: 100.0%
— OK
>> verifying ramloader
— OK
>> executing ramloader
— OK
>> waiting for phone: Connected.
>> sending erase
— OK
>> uploading CG30: 100.0%
— OK
>> uploading CG32: 100.0%
— OK
>> verifying CG30
— OK
>> verifying CG32
— OK
>> rebooting
Note that I needed to be root. The phone rebooted and all was as before. Nothing appeared different, as I had only changed the bootloader back to the original stock so I could proceed with changing it to a newer setup. I was told this was needed if I wanted to go back, which I wanted to be able to do in the event this didn’t work out. So I now needed three things:
CM7.2 for my phone from http://www.mediafire.com/download/y5e18exiy2asyt5/update-cm-7.2.0-RC1-sage-UNOFFICIAL-signed.zip
Google Apps for the playstore from https://code.google.com/p/cyanogenmod-kovsky/downloads/detail?name=gapps-gb-20110828-signed.zip&can=2&q=
and 2ndinit installer from http://forum.xda-developers.com/showthread.php?t=1471549
Of the three, the first order of business was unraring the 2nd init installer:
$ unrar x 2ndInit_Installer.rar
UNRAR 4.10 freeware Copyright (c) 1993-2012 Alexander Roshal
Extracting from 2ndInit_Installer.rar
Creating 2ndInit_Installer OK
Extracting ……(more stuff)
Extracting 2ndInit_Installer/ReadMe.txt OK
Creating 2ndInit_Installer/data OK
Extracting 2ndInit_Installer/data/bootmenu.v0.5.1.tar.gz OK
Extracting 2ndInit_Installer/data/busybox OK
Extracting 2ndInit_Installer/data/cpfile.sh OK
Extracting 2ndInit_Installer/data/install.sh OK
All OK
The instructions said to make a folder called bootmenu on the sdcard and put the files from ./data in there. So, with my phone on and connected via USB, and debugging enabled on the phone I then could do that as you see here.
$ su
Password:
# adb shell
$ cd sdcard
$ mkdir bootmenu
$ exit
/2ndInit_Installer# ls
2ndInit_Installer.exe AdbWinUsbApi.dll mingwm10.dll ReadMe.txt
adb.exe data QtCore4.dll
AdbWinApi.dll libgcc_s_dw2-1.dll QtGui4.dll
2ndInit_Installer# cd data
2ndInit_Installer/data# ls
bootmenu.v0.5.1.tar.gz busybox cpfile.sh install.sh
2ndInit_Installer/data# adb push ./bootmenu.v0.5.1.tar.gz /sdcard/bootmenu/
2560 KB/s (2231424 bytes in 0.851s)
2ndInit_Installer/data# adb push ./busybox /sdcard/bootmenu/
2735 KB/s (750576 bytes in 0.267s)
2ndInit_Installer/data# adb push ./cpfile.sh /sdcard/bootmenu/
14 KB/s (149 bytes in 0.010s)
2ndInit_Installer/data# adb push ./install.sh /sdcard/bootmenu/
284 KB/s (2224 bytes in 0.007s)
And then to use it:
# adb shell
$ su
# cp -R /sdcard/bootmenu /data/bootmenu
# cd /data/bootmenu
# ls
install.sh
cpfile.sh
busybox
bootmenu.v0.5.1.tar.gz
# chmod 0755 ./*
# ls -l
-rwxr-xr-x root root 2224 2015-05-29 08:01 install.sh
-rwxr-xr-x root root 149 2015-05-29 08:01 cpfile.sh
-rwxr-xr-x root root 750576 2015-05-29 08:01 busybox
-rwxr-xr-x root root 2231424 2015-05-29 08:01 bootmenu.v0.5.1.tar.gz
# ./install.sh
Install now….
rm: can’t remove ‘/system/bootmenu/binary’: No such file or directory
rm: can’t remove ‘/system/bootmenu/config’: No such file or directory
rm: can’t remove ‘/system/bootmenu/images’: No such file or directory
rm: can’t remove ‘/system/bootmenu/script’: No such file or directory
system/bootmenu/recovery/res/images/icon_decryption.png
…………… (More stuff)
system/bootmenu/2nd-init/
system/bootmenu/
system/
rm: can’t remove ‘/system/bin/bootmenu’: No such file or directory
rm: can’t remove ‘/system/bin/logwrapper.bin’: No such file or directory
Install complate….
# exit
$ exit
And then using adb to push the other two files to the phone:
# adb push update-cm-7.2.0-RC1-sage-UNOFFICIAL-signed.zip /sdcard/update.zip
2336 KB/s (95333081 bytes in 39.839s)
# adb push gapps-gb-20110828-signed.zip /sdcard/
2626 KB/s (6409759 bytes in 2.382s)
# exit
So I disconnected the phone from the USB and turned it off. When I power on, I now can watch the notification light on my phone, and the moment it lights up, I can push the volume down button and viola! I am now in a new bootloader with more options.
Android BootMenu
With the volume up/down buttons, I can navigate the menu and with the power button I can select the option. So, I scroll down to Custom Recovery start and press the power button.
I now get a new menu of ClockworkMod Recovery v2.5.1.8. What the instructions did not tell me was that while the volume up/down keys still navigate, the power key simply turns off the screen. So when I scrolled down to “wipe data/factory reset” and pushed the power key, I thought I had bricked my phone! Press the power key again, and it lights back up. Use the square “touchpad” on the phone to press enter.
So, in order:
-backup and restore
-> backup (really handy later!) This saves a backup of your entire (internal memory) phone to the sdcard for future restoring.
-Wipe data/factory reset
->yes
-wipe cache partition
-install zip from sdcard
->choose zip from sdcard
Scroll down until you find the update~.zip for your CM 7.2.
->yes
Now, if you want the Google playstore and apps then you need to install the gapps zip also.
Reboot and you’re done! Based off of Android 2.3.7, CM7.2 is a definate upgrade for my phone.
The only problem that I have with the phone is that it would reboot during phone calls. A google search led me to forums stating that you could fix it by simply setting the phone to use 2G networks only. This did slow down the internet speeds, but supposedly improves battery performance. I’ll try it out for a while and see how I like it. I can switch back to 3G networks, just not while on the telephone.
Linux – keep it simple.
Whew, looks like a good deal of work! But I think I’ll give this a try on my next day off. Thanks!
Just be sure that once you get it loaded, you need to select 2g networks only in the settings for networks. Otherwise you phone will randomly reboot on occaision!