Cơ bản
Bộ nhớ trong của smartphone HTC chạy Android được phân thành nhiều vùng (partition). Mỗi một vùng được sử dụng vào mục đích riêng. Sau đây là những vùng chính:
Xanh: Vùng bạn có thể can thiệp dữ liệu mà không cần bất cứ quyền hay chức năng đặc biệt. Khả năng máy bạn có thể biến thành là cục gạch là 0.
Vàng: Bạn có thể can thiệp dữ liệu trên vùng khi có được ít nhất là root (cần Unlock Bootloader cho Boot và Recovery). Nếu không cẩn thận thì có thể bootloop hoặc tệ hơn là softbrick.
Đỏ: Bạn chỉ có thể can thiệp dữ liệu trên vùng này khi có được S-OFF. Cơ hội máy bạn thành cục gạch là khá cao nếu bạn không cẩn thận khi táy máy trên các vùng này.
Bộ nhớ trong của smartphone HTC chạy Android được phân thành nhiều vùng (partition). Mỗi một vùng được sử dụng vào mục đích riêng. Sau đây là những vùng chính:
- System: vùng cho hệ thống điều hành, thường là bị khóa. Khi các bạn up ROM, đại đa số (nếu không phải là 100%) là được viết vào đây. Root là lý do mà bạn muốn có quyền để có thể viết/xóa trên vùng này.
- Data (userdata): Vùng dành cho phần mềm tải trên mạng về, chép vào máy và cài đặt. Một số custom ROM (ROM cook) có thể cài đặt một số nhỏ ứng dụng của ROM vào phần này. Những ứng dụng mà ROM cook cài ứng dụng trên vùng này thường là có thể tải từ nguồn khác về, thường là những ứng dụng thông thường nhưng không phải là phần tất yếu của ROM. Tất cả dữ liệu trên vùng này sẽ bị xóa nếu bạn dùng chức năng factory reset.
- Recovery: vùng dành cho chức năng hồi phục. Lúc bạn cài (flash) custom Recovery.img là bạn viết vào đây.
- Boot: Vùng chứa Android kernel (boot.img)
- Radio: Vùng chứa firmware cho radio, camera và một số phần cứng của máy.
- HBOOT: Bootloader, phần mềm liên quan tới khởi động của máy.
- Cache: Chứa ROM tải về qua OTA, dữ liệu tạm thời từ tải về từ Play Store.
- Sdcard (internalsd): Vùng dùng chứa dữ liệu cá nhân.
Xanh: Vùng bạn có thể can thiệp dữ liệu mà không cần bất cứ quyền hay chức năng đặc biệt. Khả năng máy bạn có thể biến thành là cục gạch là 0.
Vàng: Bạn có thể can thiệp dữ liệu trên vùng khi có được ít nhất là root (cần Unlock Bootloader cho Boot và Recovery). Nếu không cẩn thận thì có thể bootloop hoặc tệ hơn là softbrick.
Đỏ: Bạn chỉ có thể can thiệp dữ liệu trên vùng này khi có được S-OFF. Cơ hội máy bạn thành cục gạch là khá cao nếu bạn không cẩn thận khi táy máy trên các vùng này.
Android Diễn Nghĩa
Bạn có thể xem máy bạn như cấm thành Bắc Kinh. Muốn được vào kinh thành thì bạn phải vượt qua Vạn Lý Trường Thành (Root), muốn vào gặp vua thì phải qua Tử Cấm Thành (Unlock Bootloader), và muốn lấy Ngọc Ấn thì phải có S-OFF.
Root, unlock bootloader, và S-OFF không phụ thuộc vào nhau.
Root (superuser / SuperSU)
Cơ bản
"Root" cơ bản cho phép bạn là chạy bất cứ ứng dụng/chương trình mà không có giới hạn. Nói cách khác các ứng dụng và chương trình của bạn sẽ được phép chạy dưới quyền admin (tương tự như bạn chạy với account Administrator trong Windows). Bạn vuhai6 đã có một bài chi tiết nói về root ở đây. http://www.tinhte.vn/threads/1540865/
Lúc bạn root xong thì bạn sẽ có thêm 2 thứ trên máy của mình:
- /system/xbin/su: đây là chương trình cho phép bạn đổi qua quyền hạn của root (admin).
- /system/app/superuser hay /system/app/superSU: ứng dụng để quản lý những ứng dụng khác có quyền sử dụng root (/system/xbin/su) hay không.
Muốn root thì bạn phải cài đặt su và superuser/superSU trong /system nhưng chưa có root thì làm sao có thể viết lên trên /system được? Đây là bài toán mà muốn root máy, bạn phải giải. Câu trả lời ở phía dưới:
- Máy đã S-OFF hoặc Bootloader đã được mở khóa (UNLOCKED): Vì máy đã unlock nên bạn có thể truy cập trên /system mà không bị cản trở. Bạn chỉ cần flash một tập tin có su và superuser/superSU từ custom recovery hoặc "đẩy qua" (push) dùng ADB. (Bạn đã có ngọc ấn hay ở trong Tử Cấm Thành rồi thì muốn đi tham quan kinh thành thì cứ mở cổng thành mà đi).
- Máy bạn S-ON và Bootloader LOCKED: Trong trường hợp này, bạn thường được yêu cầu để chạy phần mềm dùng để khai thác lỗ hổng để có thể viết lên /system bằng một cách nào đó (Bạn đang ở ngoài VLTT chỉ có cách là trèo, chui hoặc đục thành, tìm lổ hổng để vào). Các phần mềm này đại đa số đều khai thác lỗ hổng của Android kernel 2.3.x những máy chạy kernel 3.x đa số đã không còn lổ hỗng nên các phần mềm này trở nên ít hơn.
Mở khóa bootloader
Quảng cáo
Unlock (mở khóa) bootloader cho phép bạn có thể tùy tiện đặt ROM vì bạn có toàn quyền truy cập vào /system và /recovery. Unlock bootloader được thực hiện để bạn có thể viết lên các phân vùng của hệ thống điều hành Android (các vùng màu vàng).
Điều kiện để mở khóa Bootloader
- Máy đã S-OFF: Một khi đã S-OFF, tất cả mọi vùng đã đều được mở (Bạn đã có Ngọc Tỷ trong tay rồi thì cũng không cần unlock bootloader làm cái gì, ngoại trừ khi bạn muốn táy máy chơi).
- HTCDev Unlock Bootloader (vẫn còn S-ON): HTC có cho phép một số máy được mở khóa qua HTCDev.com (Cho bạn cái chìa khóa của cửa Tử Cấm Thành, bạn muốn ra vô tùy ý).
Yếu điểm của phương pháp HTCDev là nó không cho bạn can thiệp vào vùng radio, HBOOT và cũng không cho phép Recovery truy cập vào vùng kernel (/boot), hoặc splash màn hình. Đây là lý do tại sao mặc dù đã Unlock Bootloader rồi, sau khi flash ROM nào đó bạn bị lỗi wifi hay bootloop, vì tuy ROM (chính xác hơn là drivers modules của ROM) đã được viết lên /system nhưng kernel (boot.img) không được cập nhật. Để khắc phục yếu điểm này bạn cần có 1 trong 2 điều kiện sau đây:- Dùng fastboot để cài kernel (boot.img) sau khi gắn ROM từ PC với lệnh: fastboot flash boot <tên của boot.img của bạn lấy ra từ ROM>. Boot.img nằm trong gốc của zip của ROM/kernel.
- Dùng một custom Recovery sử dụng phương pháp HTC Dumlock để có thể flash kernel từ recovery. 4Ext và TWRP Recovery là hai recovery sử dụng HTC Dumlock. Vắn tắt là HTC Dumlock nhảy từ chế độ recovery qua fastboot khi cần flash boot.img.
Ngoài khóa Bootloader ra, HTC còn có một kiểm soát an ninh tên S(ecurity)-ON/OFF. Một khi đã được S-OFF, bạn có thể làm bất cứ điều gì bạn muốn ngay cả sử dụng một bootloader vẫn còn khóa để cài đặt ROM (nhưng phải cẩn thận khi cài RUU). Một điện thoại S-OFF cho phép bạn truy cập để viết firmware radio, HBOOT mới vào thiết bị. Một điện thoại S-OFF không có hạn chế về vùng, vì vậy bạn có thể xóa sạch mọi thứ trên máy và bị kẹt lại với một chiếc điện thoại không có hệ điều hành và không có cách nào để làm bất cứ điều gì. Nói cách khác bạn có thể biến chiếc điện thoại của bạn thành cục gạch nếu bạn không cẩn thận. Ngược lại, vì bạn có thể can thiệp vào bất cứ vùng nào trên máy, bạn có thể biến nó từ cục gạch trở lại một chiếc điện thoại bình thường.
Tóm lại, S-OFF như bạn có Ngọc Tỷ trong tay và muốn làm gì cũng được.
S-OFF để làm gì
- Đầu tiên và quan trọng nhất, nó cho phép bạn cài ROM và khôi phục Nandroid backup một cách dễ dàng hơn nhiều, bằng cách cho phép Recovery có quyền can thiệp vào vùng boot (kernel). Bạn sẽ không cần máy tính để flash boot.img sau khi up ROM/khôi phục Nandroid backup như trong trường hợp còn S-ON.
- Cho phép thay đổi firmware: bạn có thể cập nhật một HBOOT "vá" hoặc “kỹ thuật”(engineering), lợi thế của sẽ được thảo luận phía dưới.
- Bạn có thể nâng cấp các radio và firmware liên quan mà không cần phải flash/chạy cái RUU gốc.
- Nó cho phép bạn xuống cấp phiên bản Android, thí dụ bạn chán/không thích ICS và muốn xuống lại Gingerbread. Bạn có thể flash những ROM rò rỉ mới nhất và nếu không thích, quay trở lại hệ điều hành/ firmware cũ mà không có vấn đề gì.
- Bạn có thể thay đổi màn hình splash của bạn, đây không phải là chức năng quan trọng, nhưng thỏa mãn nhu cầu cá nhân hóa điện thoại của bạn.
- Khả năng để cài đặt một HBOOT “vá” hoặc kỹ thuật, kết hợp với khả năng có thể chạy bất kỳ RUU nào, cho cơ hội lớn hơn để “vực dậy” một điện thoại đã bị biến thành cục gạch “mềm”.
- Giảm thiểu các bước để thay đổi trạng thái mở khóa của bạn cho mục đích bảo hành.
Quảng cáo
Hiện tại có 2 cách bạn có thể sử dụng để S-OFF: Revolutionary.IO và Unlimited.IO. Có một vài máy HTC, tùy theo HBOOT mà bạn đang chạy có thể sử dụng một cách khác nhưng phần nhiều là khá rắc rối và chỉ dành cho các bạn đã quen với ADB và fastboot. Đối với những bạn mới thử S-OFF, mình khuyên bạn nên dùng Revolutionary.IO hoặc Unlimited.IO.
Cả hai cách đều đòi hỏi là bạn đang chạy ở những dòng đời HBOOT nhất định. Nếu máy bạn chạy trên những HBOOT phiên bản khác thì ĐỪNG THỬ.
Cách để xem phiên bản HBOOT hiện tại của máy
Vào Bootloader (Nhấn nút Power và Volume – cho tới khi máy vào trong hình HBOOT).
Dãy số hiển thị sau chử HBOOT-… là số phiên bản HBOOT của máy
Revolutionary.IO
Đây là cách đầu tiên được sử dụng để có thể S-OFF và công cụ S-OFF cũng khá dễ dùng để làm theo các bước để dẫn tới S-OFF. Cách S-OFF của Revolutionary.IO sử dụng là dựa trên lỗ hổng của các HBOOT để thực hiện. Do đó các bạn chỉ nên S-OFF trước khi chắc chắn là HBOOT mình đúng phiên bản HBOOT được hỗ trợ bởi Revolutionary.IO.
Hiện tại các máy sau (và đời HBOOT) đang được hỗ trợ bởi Revolutionary.IO
Loại Máy: Các phiên bản HBOOT được hỗ trợ
- HTC Desire (bravo): 0.93.0001, 1.02.0001
- HTC Desire CDMA (bravoc): 1.06.0000
- HTC Wildfire (buzz): 1.01.0001
- HTC Aria (liberty): 1.02.0000
- HTC Incredible S (vivo): 1.09.0000, 1.13.0000
- HTC Droid Incredible 2 (vivow): 0.97.0000 (cho Gingerbread)
- HTC Desire S (saga): 0.98.0000, 0.98.0002
- HTC View (express):1.09.0000, 1.13.0000
- HTC Flyer (flyer): 1.10.0000, 1.11.0003
- HTC Sensation (pyramid): 1.17.0006, 1.17.0008, 1.17.0011, 1.17.0012, 1.18.0000
- HTC Evo 3D (shooter): 1.30.0000, 1.40.0000
- HTC EVO 3D GSM (shooteru): 1.49.0007, 1.49.0008
- HTC Thunderbolt (mecha): 1.04.0000, 1.05.0000
- HTC EVO 4G (supersonic): 2.15.0001, 2.16.0001
- HTC myTouch Slide 4G (doubleshot): 1.44.0007
S-OFF với Revolutionary.IO
- Tải về USB Drivers cho máy của bạn
- Vô hiệu hoá chức năng fast boot trên phone (Settings-> Power -> FastBoot) hoặc (Settings-> Power -> FastBoot).
- Kích hoạt chức năng USB Debugging (Settings->Applications ->Development ->USB debugging hoặc Settings->Developer options ->USB debugging).
- Kết nối phonevào máy tính thông qua cổng USB.
- Mở Web Browser rồi gõ http://revolutionary.io/
- Tải về công cụ Revolution.io cho Windows hoặc Linux, rồi giải nén trên máy.
- Nếu bạn trên Windows, quay trở lại thư mục mà bạn vừa giải nén “revolutionary-0.4pre4.zip” rồi chạy tập tin có tên “revolutionary.exe”
- Chương trình sẽ mở ra màn hình cmd và nhận diện máy của bạn. Sau đó chương trình sẽ đưa cho bạn 1 dãy mã số (serial number). Và chờ đợi để bạn nhập 1 dãy mã số khác, mã số này sẽ được lấy ở bước tiếp theo. (đừng tắt đi)
- Quay trờ lại trang http://revolutionary.io/vẫn còn mở vừa nãy. Bạn chọn trong cái bảng ấy như sau :
- Your operating system : Windows/Linux
- Your device: <Chọn tên máy của bạn>
- HBOOT version: Chọn Hboot vừa nãy đã kiểm tra trên máy của bạn
- Serial number: Điền dãy số serial mà chương trình vừa đưa cho bạn
Trên một vài máy, Revolutionary.IO cũng có chức năng thay HBOOT bằng một HBOOT “vá” để tăng thêm các chức năng cho fastboot và chống HBOOT bị viết đè lên khi bạn chạy RUU. Nếu có chức năng này thì Revolutionary.IO sẽ hỏi phép bạn trước khi thực hiện.
Unlimited.IO
Sau khi Revolutionary.IO ra đời được ít lâu thì HTC cập nhật những phiên bản HBOOT mới và vô hiệu hóa lỗ hổng mà lâu nay Revolutionary.IO dùng để đoạt quyền S-OFF. Sau một thời gian “méo mặt”, các dev trên XDA lại tìm ra một cách mới và Unlimited.IO ra đời. Unlimited.IO có vài cách để S-OFF nhưng phần lớn các máy được hỗ trợ và được biết nhiều hơn hết qua cái tên Juopunutbear S-OFF.
Cách Unlimited.IO dùng Juopunutbear để S-OFF khá là ly kỳ và đủ để cho bất cứ ai thử lần đầu đều toát mồ hôi. Thay vì chỉ chuyên can thiệp bằng phần mềm như trước đây thì Juopunutbear đòi hỏi một bước đụng tới phần cứng. Ngắn gọn là để S-OFF, Juopunutbear cần đưa máy vào tình trạng “cục gạch”, rồi dùng công cụ emmc nạp tất cả các vùng (partitions) với chức năng viết/xóa, tìm ra vùng phải viết S-OFF rồi nếu bạn cho phép dùng adb/fastboot để thay vào HBOOT “vá”. Do phần “đưa máy vào tình trạng “cục gạch”” nên tỷ lệ máy bạn trở thành “cục gạch” vĩnh viễn cao hơn là những cách S-OFF khác. Do đó bạn nên xem một vài video trên Youtube trước khi thi hành để lấy bình tĩnh. Nhưng làm một lần rồi thì sẽ thấy cũng không đến nỗi nào ghê rợn như lúc đầu.
Vì mỗi máy có cấu trúc khác nhau nên mình không tiện viết ra hết chỉ dẫn chi tiết và các bạn nên tham khảo trược tiếp trên Unlimited.IO. Điều quan trọng trước khi thử cách Juopunutbear là bạn nên
- Coi lại HBOOT mình có giống thống số HBOOT hỗ trợ bởi Juopunutbear hay không
- Sạc pin cho thật đầy
- Vô hiệu hoá chức năng fast boot trên phone (Settings-> Power -> FastBoot) hoặc (Settings-> Power -> FastBoot).
- Kích hoạt chức năng USB Debugging(Settings->Applications ->Development ->USB debugging hoặc Settings->Developer options ->USB debugging).
- Unlock Bootloader qua HTCDev
- Đã được root hay sử dụng một boot không chức năng an ninh (c.n.: boot cho bạn có phép truy cập /system)
- Coi video trên Youtube để biết được các bước rõ ràng hơn. Mặc dù đã làm vài lần nhưng lần nào làm lại cách này, mình cũng xem lại video để lấy "tinh thần".
Phục hồi ROM/dữ liệu:
Có 3 cách để phục hồi ROM của bạn nếu bạn thử Juopunutbear mà không thành công và muốn trở lại tình trạng cũ. Cách thứ nhất là sử dụng khả năng phục hồi tự động của Controlbear qua Recovery “đặc biệt”. Cách thứ hai cũng tự động nhưng sử dụng fastboot và cách thứ ba là làm “thủ công”. Hãy thử từng phần một cho tới khi bạn thành công.
Mở cmd và vào trong thư mục ControlBear mà bạn giải nén tất cả các tập tin trong zip mà bạn đã tải về. Thư mục bạn phải có 2 tập tin sau: boot_backup.img, recovery_backup.img
Dùng khả năng phục hồi ROM tự động qua Recovery của Controlbear
- Kết nối dây USB với điện thoại và laptop/PC
- Bật điện thoại và đợi khi nó vào màn hình JuopunutBear có mũi tên chỉ xuống.
- Nhập lệnh sau vào cmd trên laptop/PC: ControlBear -r
- ControlBear sẽ vào chức năng hồi phục và sẽ đem máy bạn trở lại tình trạng xưa. Nếu phần này thành công thì phục hồi ROM đã hoàn tất, nếu không sang phần phục hồi qua fastboot.
- Kết nối dây USB với điện thoại và laptop/PC
- Bật điện thoại và vào chế độ fastboot (Nút Power + Volume -)
- Nhập lệnh sau vào cmd trên laptop/PC: ControlBear –f
- ControlBear sẽ vào chức năng hồi phục qua fastboot và sẽ đem máy bạn trở lại tình trạng xưa. Nếu phần này thành công thì phục hồi ROM đã hoàn tất, nếu không sang phần phục hồi “thủ công”
- Kết nối dây USB với điện thoại và laptop/PC
- Bật điện thoại và vào chế độ fastboot (Nút Power + Volume -)
- Nhập lệnh sau vào cmd trên laptop/PC:
- fastboot flash boot boot_backup.img
- fastboot flash recovery recovery_backup.img
Nếu 2 bước trên thành công, tiếp tục bước #4.
- Khởi động điện thoại Android và cài đặt busybox từ Google Play nếu máy bạn chưa cài đặt.
- Kích hoạt chức năng USB Debugging(Settings->Applications ->Development ->USB debugging hoặc Settings->Developer options ->USB debugging).
- Kết nối điện thoại vào máy tính thông qua cổng USB
- Nhập lệnh sau vào cmd trên laptop/PC:
- adb push sdcard.img /data/local/tmp/
- adb shell
- su
- busybox dd if=/data/local /tmp/sdcard.img of=/dev/block/mmcblk1 conv=notrunc
- Khởi động lại điện thoại.
Có đôi khi, máy bạn sẽ không nhận diện được thẻ SD sau khi bạn đã hồi phục máy. Những bước sau sẽ giúp bạn format lại thẻ nhớ của mình.
- Cài đặt busybox từ Google Play nếu bạn chưa có trên máy
- Kích hoạt chức năng USB Debugging(Settings->Applications ->Development ->USB debugging hoặc Settings->Developer options ->USB debugging).
- Kết nối điện thoại vào máy tính thông qua cổng USB
- Nhập lệnh sau vào cmd trên laptop/PC:
- adb shell su-c "busybox fdisk /dev/block/mmcblk1
- nạp ‘o’
- nạp ‘w’
- adb shell su-c "busybox fdisk /dev/block/mmcblk1"
- nạp ‘n’
- chọn primary, sau đó 1
- Chọn kích cỡ mặc định (default sizes)
- nạp ‘w’
- adb shell su-c "busybox mkfs.vfat /dev/block/mmcblk1p1"