Wednesday, June 10, 2009

Howto: Quickly Root your Android G1 Phone in 14 Steps

The first step is to downgrade so you can obtain root access.
  1. Download the RC29 NBH file if you are in the US or the RC7 NBH file if you are in the UK.
  2. Place this file on your sd card (it is best if you format the card to FAT32 before this step, if you run into errors try that).
  3. Turn the device power off and make sure your sd card is inserted.
  4. Hold down the camera button while you turn on your phone to enter bootloader.
  5. Press the power button to start flashing the image file.
  6. After it finishes, press the trackball and perform a soft reset by pressing "Call" + "Menu" + "End" to reboot. 
  7. Once your phone boots to the desktop hit the key twice and then type "telnetd" and press again.
  8. Download Android Telnet client (ConnectBot, other telnet clients do not seem to work properly when initially gaining root), run it and connect to "localhost". If you are unable to connect, try steps 1 and 2 over again until you can. Also, you can try doing a factory wipe (alt+w in the recovery menu) and retrying if all else fails.
  9. Download JF's US G1 Cupcake 1.51 ROM for US users or JF's UK G1 Cupcake 1.51 ROM for UK users or JF's ADP Cupcake 1.51 ROM if you have an ADP1 to /sdcard and rename it to update.zip (when you are done it should be "/sdcard/update.zip").
    • To make sure the update is named correctly, in the terminal you opened earlier, type
      • ls /sdcard/update*
    • If you see a file named update.zip, then it is named correctly. However, if you see a file named update.zip.zip, type the following command
      • mv /sdcard/update.zip.zip /sdcard/update.zip
  10.  Download the modified recovery and unzip it. Place the file "recovery_testkeys.img" in /sdcard
  11. In the terminal you opened earlier (with root access) Enter the following commands in to flash the modified recovery
    • mount -o remount,rw /dev/block/mtdblock3 /system
    • rm -f /system/recovery.img
    • flash_image recovery /sdcard/recovery_testkeys.img
  12. Reboot your phone (completely, do not enter recovery yet or your neighbors dog might die)
  13. Once fully rebooted, power off your phone (hold power and select "Power Off"), and hold down home while you turn the power back on.
  14. When you enter the recovery console (which should say "using test keys" if your modified recovery was flashed correctly) hit "alt+L" and then "alt+S" on your keyboard. This will flash the update.zip file that you downloaded and placed there. If you have any problems with this step you missed something above. 

Wednesday, April 8, 2009

Howto: Install the latest HTC Magic/Sapphire Cupcake Firmware on your android G1!

It no longer is a Dream to be able to run cupcake on your Android G1, thanks to Haykuro an XDA developer member who is active hacking away on the HTC Sapphire firmware and bringing it directly to us Android G1 users, he has been working on it daily while going to school and working a full time job.  Just like the hackers obtained root access on the G1 before it was released, Haykuro has hacked the HTC Firmware mod 4.5 to be fully functional on the Android G1 before the HTC Saffire has been released! 

First of all I need to explain the differences between version 4.5 and version 4.9, people automatically think that the latest version number is the latest firmware, this is not the case with this firmware:
Versions 4.0 and 4.9 are HTC's Build based on the latest Google Android Code
Version 4.9 is highly unstable and does not support all market apps, and when placing/recieving calls your phone crashes after the call, and when a person answers the phone vibrates, I also noticed random reboots and other problems. 
Version 4.5 is based on the latest Google Android code - This is the most stable, it is as stable as JesusFreke's Latest build and I have not had any problems.

Here is the current status of the HTC Magic mod'd firmware:
  1. Apps to SD Support added to 4.5 build and 4.9 build.
  2. Root/Superuser Access available on all Builds.
  3. Camera/Video Recording is working but has a few cosmetic bugs.(blue/red colors are enhanced, can be fixed with photoshop or Gimp) (will be fixed soon)
  4. Battery life has improved using Android 1.5 with the new Sapphire radio update (Radio version 2.22.19.23)
  5. The Android Chrome Browser has been tweaked for a noticably faster experience.
  6. Gmail app has nice cosmetic changes with ability to select multiple messages to archive/apply labels and has improved performance
  7. MyFaves is not included due to possible copyright issues?
  8. Wifi and Full A2DP Bluetooth is working on all builds.
  9. Live Folders/Contacts on the Home Screen
  10. Contact manager is streamlined and has more features
  11. Nice Transition Effects(reminds me of compiz)
  12. Chat off the Record with Gtalk
  13. User dictionary added to shorten the time typing.
  14. Autocomplete in most apps.
  15. You can either use the device keyboard or software keyboard.

Stable Google Android Version 4.5 cupcake Build Specific Changes from HTC's Build
  1. Faster Browser than HTC Build
  2. All Google apps work accept IM(the stock im app sucks anyways, I use apps found in the market)
  3. Gtalk app works
  4. Autorotate all apps and homescreen

Unstable HTC Version 4.9 Specific Features & Changes from Google's Build
  1. Native Exchange 2003/2007 included in the HTC builds (ie 4.0 and 4.9)
  2. Has issues with Google apps. (No Maps)
  3. Not able to run all applications in the market(I wasnt able to use Google Voice by Evan Charlton)
  4. The popup keyboard is HTC Styled(I dont care for it much)
  5. Camera/Camcorder has Zoom

Howto Install:
Warnings...
Make sure your phone is fully charged, while flashing, do not have the urge to press any keys or interrupt the process by pulling the battery or you risk bricking your device.  Patience is a virtue.
You will need to wipe your phone, so be sure to grab the astro filemanager app in the market and press menu, application manager and backup all your apps to sd.


  1. First you Need root access and you need to have JF's Firmware installed, see here for updated instructions
  2. Once your confident in having root access you are all set to install the HTC Magic mod'd firmware
  3. Go Here and download the latest firmware mod for your G1 (as of this post 4.5 is the most stable for daily usage, 4.9 is risky and very buggy)
  4. You may want to check the  md5sum/sha1sum of the file you downloaded, it shouldnt be necessary since the zip's are signed, but it would save you a reboot and redownload if you did.
  5. Copy the zip to the sdcard and rename it to update.zip
  6. Power Down your device by holding in Power(red), then shut off.
  7. Press Power(Red) and Home(Little House) at the same time, until you see scrolling text and JF's recovery bootscreen.
  8. Wipe the phone to factory defaults, by pressing ALT-W (make sure all data is backed up before this step :)
  9. Now apply the update.zip file by pressing ALT-S and waiting... Give it 10-20 minutes to do its thing, it will reboot a couple times, whatever you do, do nothing until you see the android welcome screen.
  10. Ok everything should have flashed correctly, if not and you cant turn on your device, call t-mobile and tell them your phone didnt startup after the latest ota update and get it replaced. 
  11. Hundreds of people have done this correctly, the people that didnt pulled there battery early and didnt read, ask around, research.

Enjoy Your new firmware and be sure to follow Haykuro on Twitter for development updates.

Helpful Links & Additional info
Haykuro on Twitter for development updates.
Haykuro's blog for updates, recent builds
JesusFreke's Blog for updates on his firmware
HTC Sapphire/Vodofone Magic G1 Port Xda Dream Developers thread

Monday, January 26, 2009

JFv1.41, with Multi-Touch Browser!

JFv1.41 is out!
found via: xda
This version contains... *drumroll* multi-touch support! Thanks to lukehutch, zinx and ryebrye, this build allows android applications to receive multi-touch events. The built-in browser now supports multi-touch zooming! It also includes an "Auto-Rotate" setting that you can enable, to allow it to change screen orientation, based on the orientation of the phone. You can turn on auto-rotate in the browser settings (it's off by default).


See lukehutch's blog post for more information about the new multi-touch support, as well as a few other demo multi-touch apps he created that you can try out after installing JFv1.4. He also mentions a few issues that are present in browser, that you might run into while playing with zoom.

Other changes of note for JFv1.41 include:
  • a console in recovery mode. You can press alt+x to exit out of the recovery program and go directly to a console.
  • the ADP1 build is now based on the ADP1.1 firmware. See this thread for information about the changes in ADP1.1
  • the ADP1 build now includes .odex files for all of the system apks and jars. This means that you will have more space available in /data for all of your apps and caches, although less space available in /system
  • busybox's vi should now save files correctly, instead of saving them as blank files

One thing that I would like to point out about the ADP1.1 build is that it allows you to skip the initial google registration. This will make registering over wifi painless. You just click the "skip registration" button in the registration app, enable wifi in settings, then open the registration app again by trying to access one of the google apps (gmail, market, etc.), and then you can register over wifi.


Downloads:


ADP1.1: (md5: 48c421bf95f29bcc409bf1560927f1c7)
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://jf.odiness.com/v1.41/JFv1.41_ADP1.1.zip
http://andblogs.net/2009/01/jesusfre...mages-are-out/


RC30: (md5: 0cecb7c89cc4a5b7f8501e79fb66df40)
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://jf.odiness.com/v1.41/JFv1.41_RC30.zip
http://andblogs.net/2009/01/jesusfre...mages-are-out/


RC8: (md5: 72135da62839758de0cb2acd49d84850)
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://jf.odiness.com/v1.41/JFv1.41_RC8.zip
http://andblogs.net/2009/01/jesusfre...mages-are-out/

JFv1.41 can be installed in the usual way. Save the zip file to your sdcard named update.zip, boot into recovery mode (home + power), and then press alt+s. If you are switch between versions, e.g. from RC30 to ADP1, you must also do a wipe in recovery mode (alt+w). This will clear all your data/settings/apps, and you will have to re-register once it boots back up. If you are staying on the same build, i.e. from JFv1.31 RC30 to JFv1.41 RC30, then you shouldn't have to do a wipe.

NOTE: If you are on the stock ADP1 image, you will need to upgrade to JFv1.31, then boot normally at least once, before upgrading to JFv1.41, to keep from having to perform a wipe. If you try to go from stock ADP1 -> JFv1.41 directly, you will have to do a wipe.

NOTE: If you end up with 2 Superuser whitelist apps in the app menu, you can uninstall one of them in Settings->Applications->Manage Applications. There will only be 1 that is uninstallable, so don't worry about uninstalling the wrong one.


Note: To install these updates, you need to have a recovery image that uses test keys. If any of the following are true, you most likely have a recovery image that uses test keys
  • you have installed my modified recovery image in the past
  • you have an ADP1
  • you currently have one of my modified firmwares installed



If this is your first time installing one of my firmwares, you may be interested in the other changes that have been made in previous versions, which are included in this version. Some of the notable features include:
  • Many more commands are available to use on the terminal. busybox is included, to provide standard commands like cp, grep, less, more, vi, sed, cp.. etc.
  • A secure way to get root access, through Koush's superuser application. To get root, open up terminal emulator and type su. A new window will open asking if you want to allow root access. Click "Yes" or "Always", and it will go back to the terminal emulator, and you'll have root access
  • A number of useful kernel modules that you can use. For example, ext2, cifs, and a host of others
  • A full phone backup utility. Boot into recovery mode with home+power, and then press alt+b to perform a backup. It stores the backup as .img files in a subfolder of the nandroid folder of your sdcard. To restore the backup, you have to have the engineering spl or hardspl installed, and then flash the images with the fastboot utility
  • ota updates are disabled. This is to prevent t-mobile from automatically updating your phone with a new update that removes your root access.
  • some applications that are missing on RC8 (the uk version) have been added. For example, the voice dialer and the amazon mp3 store.
  • when you connect to the phone using adb, you have root access

I've attached a full changelog vs the official builds for each version.


Here are the updated Build Environments for JFv1.41. These can be used to create an update identical to JFv1.41, or to create one modified to suit your tastes/preferences. You can find more info about the build environments over at my v1.31 post

ADP1.1: (md5: bacc58302e0b239d66c7bcc8db6c434b)
http://jf.odiness.com/v1.41/JFv1.41_...ronment.tar.gz
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://andblogs.net/2009/01/jesusfre...mages-are-out/

RC30: (md5: d5664c2324cf7d556613796dbff16a49)
http://jf.odiness.com/v1.41/JFv1.41_...ronment.tar.gz
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://andblogs.net/2009/01/jesusfre...mages-are-out/

RC8: (md5: de2d0d34adbb4015ee3aa5e4e7ca3c07)
http://jf.odiness.com/v1.41/JFv1.41_...ronment.tar.gz
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://andblogs.net/2009/01/jesusfre...mages-are-out/


EDIT: uploaded new JFv1.41 images, which fix an issue where busybox's modprobe couldn't load modules. Also fixed is an issue in the ADP1.1 build where the superuser app was crashing.

Saturday, January 3, 2009

JF1.3.1 RC30, RC8, and ADP1 Firmware for your G1

JesusFreke from xda developers has just released is famous custom firmware for the Android G1:
Here is the topic quoted from the forums:

Update (01-03-09)
v1.31 is out! This is a minor bugfix release to fix a few issues that had cropped up in v1.3.

The changes from v1.3 include:
  • Fixed the nandroid backup so that it works on sdcards with a raw fat32 filesystem (with no partition)
  • Added the telnetd binary from RC28
  • Fixed an issue with SuperUser where it was displaying the wrong processes in the su request popup
  • SuperUser should allow root to use su without displaying the popup (though there's not much point.. )
  • Added /system/modules and /system/xbin to fstab in normal and recovery mode
  • Minor fix for the update-script, so the progress bar acts more sanely


I have the usual RC30 and RC8 versions, and new for v1.3 is an ADP1 version.

ADP1: (md5: 96b2abd9a1da2852bc33b2052ea51b2a)

http://android-dls.com/forum/index.p...rb_v=viewtopic
http://www.gotontheinter.net/content/new-images-jf (at bottom of page)

RC30: (md5: 0f2e6a4244410e00028db55b4fbf808c)
http://jf.nyquil.org/v1.31/JFv1.31_RC30.zip
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://www.gotontheinter.net/content/new-images-jf (at bottom of page)

RC8: (md5: e008bbe1d93abd0c2e5e6218f012f20d)

http://android-dls.com/forum/index.p...rb_v=viewtopic
http://www.gotontheinter.net/content/new-images-jf (at bottom of page)


These updates are installed the normal way. Save them to your sdcard named update.zip, boot into recovery mode (home + power), and then press alt+l and alt+s. If you are switch between versions, e.g. from RC30 to ADP1, then it's usually a good idea to perform a wipe. You can try booting up without a wipe, but if it doesn't boot, or you get strange errors once it boots up, go back into recovery and perform a wipe (alt+w)

Note: To install these updates, you need to have a recovery image that uses test keys. If any of the following are true, you most likely have a recovery image that uses test keys
- you have installed my modified recovery image in the past
- you have an ADP1
- you currently have one of my modified firmwares installed



What's new?

The coolest new functionality in v1.3 is a new backup utility that allows you to perform a backup directly from recovery mode with alt+B. This is done using infernix's and brainaid's nandroid script, which they kindly modified to work in recovery mode. Let them know what you think . The backups are stored in a subfolder in the nandroid folder on your sdcard. To restore them, you have to copy them to your computer, and then flash them with the fastboot tool (sorry, no integrated restore yet).

If you get errors when making a backup, first make sure you have enough free space on the sdcard. it needs around 85-90mb. If you have enough space, then try reformatting the sdcard (fat32 is your best bet).

Other changes of note include
  • This version includes a new busybox binary that I compiled against uclibc, making it much smaller (1.8mb vs 700kb).
  • All busybox applets are linked at /system/xbin/bb, which is also in the path. So there are many more standard unix commands available in the terminal.
  • Many more modules and binaries are included in /system/xbin and /system/modules. They were also optimized for size, so even though there are more modules and binaries, they actually take up much less space than they did on v1.2
  • I added the terminal emulator application to /system/app. (don't worry, it won't, or at least shouldn't , cause any problems if you already have it installed)
  • got rid of the normal su binary, in favor of koush's su and SuperUser application. See details here
  • when you boot up into recovery, it will automatically show the text. You can press alt+L to turn off the text and ogle the background. (did I mention there's a new background? shhh. it's a secret )
  • fixed the annoying uptime bug, where the uptime is shown incorrectly in the settings
  • added /data/local/bin to the path. Feel free to add your own binaries/scripts here.
  • includes the /dev/mtd/mtd6 and /dev/mtd/mtd6ro devices, which allow access to the entire flash chip (other than certain restricted areas used by the radio)
  • new "ro.modversion" property, that is set to "JFv1.3". The intent of this property is so you can know you are running a modified version, as well as identify which version
  • added a modified /system/etc/security/cacerts.bks file, which contains additional certificates for cacert.org (courtesy of Disconnect)
  • added a /system/etc/resolv.conf file with the 4.2.2 family of DNS servers, to allow busybox's ping, wget, etc. to resolve host names

See the attached change logs for a complete list of changes with respect to the corresponding "official" firmware.



---------------
Update (01-03-09): Updated the links to point to the v1.31 versions

In addition to the updates themselves, I am also releasing a build environment that can use to build each update from scratch. You can use these to easily make your own custom updates. It includes some utilities that were built from git source. The binaries are for 32bit x86 linux. If you want to run it on a different platform, you're on your own.

NOTE: You don't need these to use my update. Just download one of the updates from above and install it. The build environments are only if you want to make your own customized update.

The general idea of the build environment is that it extracts the original files from the official update (or from my original ADP1 update), and then copies over anything from the various ModifiedFiles folders, then packages it all back up into a ready-to-be-applied update.zip. It does this for the boot image, recovery image and system folder. You can also specify files to delete in the various OriginalFilesToDelete.mk files.

Consider anything new that I created for the build environments (the makefiles, etc.) to be in the public domain. Everything else retains its original license of course.

Instructions:
- extract the build environment into a folder
- download the official update that the update is based on, and put it in the root of the build environment. (note: use my original ADP1 update for the ADP1 build environment. available on this page)
- run make as root. yes, it has to be with root, because the binaries in the 2 cramfs images should be owned by root. (note: I plan on using fakeroot in the future, to workaround the need to be root)
- after make finishes, assuming there are no errors, the update should be in Workspace/update.zip.

Download the build environments here:

ADP1: (md5: 2d116b334515d4d702776b9d74d2e658)
http://jf.nyquil.org/v1.31/JFv1.31AD...ronment.tar.gz
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://www.gotontheinter.net/content/new-images-jf (at bottom of page)

RC30: (md5: 29ced6e7601bac47252e51e5ac4f0ca4)

http://android-dls.com/forum/index.p...rb_v=viewtopic
http://www.gotontheinter.net/content/new-images-jf (at bottom of page)

RC8: (md5: b26f3cd244da9b8662766db69734000e)
http://jf.nyquil.org/v1.31/JFv1.31RC...ronment.tar.gz
http://android-dls.com/forum/index.p...rb_v=viewtopic
http://www.gotontheinter.net/content/new-images-jf (at bottom of page)
Attached Files
File Type: txt ChangeLog-RC30.txt (7.2 KB, 157 views)
File Type: txt ChangeLog-RC8.txt (7.5 KB, 34 views)
File Type: txt ChangeLog-ADP1.txt (7.3 KB, 125 views)

Howto Root Your Android G1 with RC8 firmware!

It has been prophesized for weeks now, but it is finally here. A rollback method for RC8 users who want root. This method is a full device flash that will roll you back to RC7 which still has the root bug. After doing this you can then follow the instructions on Rooting Android and then Keeping Root to get yourself up to RC8 modified version that lets you keep root.

Files

You will need the .nbh file to perform this. It can be downloaded here: RC7NBH.zip (download on your pc) or DREAIMG.nbh (download on your G1)


Mirrors for the .zip file: koushikduttas site or Megaupload

Installing

Instructions from Disconnects site (gotontheinter.net):

  1. Format the SD card to FAT32 mode (this is sometimes needed. image not always found if other files are on the sd card)
  2. Copy image file DREAMIMG.nbh to the SD card
  3. Turn the device power off and insert SD card
  4. Hold Camera button, and press Power button to entry Boot loader mode
  5. Press Power button to start upgrade procedure
  6. After finish, perform the soft reset to reboot.

When you are done, do not forget to follow the steps Rooting Android and then Keeping Root

Root Your Android G1 with RC30 firmware!

It has been prophesized for weeks now, but it is finally here. A rollback method for RC30 users who want root. This method is a full device flash that will roll you back to RC29 which still has the root bug. After doing this you can then follow the instructions on Rooting Android and then Keeping Root to get yourself up to RC30 modified version that lets you keep root.

Files

You will need the .nbh file to perform this. It can be downloaded here: RC29NBH.zip (download on your pc) or DREAIMG.nbh (download on your G1)

MD5 Checksum: 53840b90a0fe1bfab19fab8ef8fb9724 DREAIMG.nbh

Mirrors

Please use a mirror first if you can (users downloading on the G1 should use the above links).

Mirrors for the .zip file: Megaupload falcon4ever.pcsx2.net or koushikduttas site or RapidShare

Installing

Instructions from Disconnects site (gotontheinter.net):

  1. Format the SD card to FAT32 mode (this is sometimes needed. image not always found if other files are on the sd card)
  2. Copy image file DREAMIMG.nbh to the SD card
  3. Turn the device power off and insert SD card
  4. Hold Camera button, and press Power button to entry Boot loader mode
  5. Press Power button to start upgrade procedure
  6. After finish, perform the soft reset to reboot.

When you are done, do not forget to follow the steps Rooting Android and then Keeping Root



Thursday, December 11, 2008

Android Service Manual

Discover Simple, Private Sharing at Drop.io

Download Here

Howto: Enable Autorotate for your G1 Browser!

I'm not sure why the Android Browser doesn't auto rotate by default. Instead they have a "Flip Orientation" menu item that lets you toggle your default orientation. Pretty useless overall. Anyhow, a quick hack in the Browser source code let me enable auto rotation via the G-Sensor.

The change is really trivial. In the BrowserActivity.onCreate, I hard coded the orientation to ActivityInfo.SCREEN_ORIENTATION_SENSOR instead of pulling it from a preferences setting.

The downside is that the flip orientation menu item no longer works. Not that I care: I (and probably most people) never used it. So it is a hack, but oh well. If I'm motivated I'll put in a proper fix.

Installation Instructions (you must have root access):

  • Download the updated Browser.apk
  • Run the following from the command prompt to back up your current Browser file to your sdcard and install the new one:
    • adb remount
    • adb pull /system/app/Browser.apk BrowserBackup.apk
    • adb push BrowserBackup.apk /sdcard
    • adb shell rm /system/app/Browser.odex
    • adb push Browser.apk /system/app