2011年8月14日星期日

ASUS TF101 EeePad root and reflash to TW firmware

The week before last week, I bought an Android Pad, the Asus TF101 CN version in Guangzhou, I need to reflash it with some oversea firmware to use google services.
After reading XDA and some other sources, I finally flashed a TW version follow these steps (US/WW version should be the same procedure):

[edit: just run the universal script to root you TF101, following text before section *Change SKU* is obsoleted, and, you don't need change SKU to have TF101 rooted]

0. Before you begin, get a Ubuntu Linux Distro as working environment, because many tool support this platform and it do not need install drivers.
0.1 Familiar with the procedure with posts 1 and 2 from XDA forum.

1. First, we need the root privilege to overwrite system boot image from a TW firmware by using android adb command tool. But the Nvidia Tegra firmware is encrypted, so we need a special nvidia dev tool to flash the BIOS (on the Nvidia Tegra ROM) with a new cracked boot.img file, Download NVFlash tool for linux, it's riped from NVIDIA Linux Dev Tool by some hacker and including the Secure Boot key of Asus TF101. If you have flashed the BIOS already, skip to rooting procedure below.

[# procedure of cracking BIOS]

1.1 Boot into XDA mode and make a backup of current firmware:
#!/bin/bash

export PATH=$PATH:.

# all code copied from http://forum.xda-developers.com/showthread.php?t=1142567

BACKUP_DIR=~/tf101-backup-`date +%Y%m%d%H%M%S`

mkdir $BACKUP_DIR

nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync

nvflash --resume --getpartitiontable $BACKUP_DIR/partitiontable.txt

nvflash --resume --read 2 $BACKUP_DIR/02_BCT_raw.img

nvflash --resume --read 3 $BACKUP_DIR/03_PT_raw.img

nvflash --resume --read 4 $BACKUP_DIR/04_EBT_raw.img #bootloader

nvflash --resume --read 5 $BACKUP_DIR/05_SOS_raw.img #recovery

nvflash --resume --read 6 $BACKUP_DIR/06_LNX_raw.img #kernel

nvflash --resume --read 7 $BACKUP_DIR/07_BAK_raw.img

nvflash --resume --read 8 $BACKUP_DIR/08_GP1_raw.img

nvflash --resume --read 9 $BACKUP_DIR/09_APP_raw.img #system

nvflash --resume --read 10 $BACKUP_DIR/10_CAC_raw.img

nvflash --resume --read 11 $BACKUP_DIR/11_MSC_raw.img

nvflash --resume --read 12 $BACKUP_DIR/12_USP_raw.img

nvflash --resume --read 13 $BACKUP_DIR/13_PER_raw.img

nvflash --resume --read 14 $BACKUP_DIR/14_YTU_raw.img

#nvflash --resume --read 15 $BACKUP_DIR/15_UDA_raw.img #media (/!\ ~14/30GB large)

nvflash --resume --read 16 $BACKUP_DIR/16_GPT_raw.img
[#rooting procedure is omited, it's as simple as replace a number in a system file, just read the universal script mentioned above]

1.2 Now we can flash the rooted boot.img:
nvflash -r --download 6 boot.img
 
[#Change SKU] 
2. After reboot, we will have a rooted system, and we can update it with any stock firmware from ASUS of any regional SKU. The command is:

升级过程:
1.解压ROM包中的blob文件到adb目录中
2.将TF101与电脑连接
3. 进入到adb文件目录中
4.输入命令 adb push blob /data/local/
5.稍等几分钟后会提示blob文件就被传送到机身存储中
6.继续输入命令 adb shell
7.此时提示符变为#
8.输入命令 dd if=/data/local/blob of=/dev/block/mmcblk0p4
9.设备会自动重启,开机即为所刷ROM.


At last, I reflashed the rooted boot image with nvflash tool to install some system apps which require a rooted device.