Re-crypt toàn bộ Tegra GPT của Nexus 7 2012 grouper để dùng U-boot chạy pure GNU/Linux

LuxiTD
17/12/2022 12:39Phản hồi: 0
Re-crypt toàn bộ Tegra GPT của Nexus 7 2012 grouper để dùng U-boot chạy pure GNU/Linux
→ Khi cài U-Boot lên bootloader của Nexus 7 2012 sẽ không thể quay về cài Android 7.1.2 NZH54D của AndDisa hoặc stock 5.1.1 Lolipop của Google, mặc dù vẫn có thể cài AOSP bằng một số patch nhỏ cho U-Boot, hoặc phải debrick Nexus 7 cài lại bootloader 4.23

Bài này chỉ là ý tưởng của một số hardcore devs để chạy pure GNU/Linux trên Nexus 7 2012 grouper, đã chạy tốt trên grouper và fix lỗi đảo ngược panel. Hiện tại, vẫn dùng bootloader 4.23 của Google, trước hết phải đưa máy về rom stock 5.1.1 Lolipop theo danh sách của grouper bằng tool wugfresh

---------------
Cách kiểm tra variant rev.E1565 hay rev.PM269

Variants

  • grouper rev. PM269 - without GSM (oldest)
  • grouper rev. E1565 - without GSM (modern revision)
  • tilapia rev. E1565 - with GSM

Do I have grouper or tilapia?


TWRP (adb shell) $ grep androidboot.baseband=unknown /proc/cmdline && echo grouper || echo tilapia

Which hardware revision of grouper do I have?


TWRP (adb shell) $ find /sys/devices/ | grep -c max776 && echo You have E1565

TWRP (adb shell) $ find /sys/devices/ | grep -c tps6591 && echo You have PM269

-------------

Cám ơn digetxClamor95 đã gợi ý những mảnh ghép từ re-crypt

https://gitlab.com/postmarketOS/pmaports/-/merge_requests/3836/diffs?commit_id=2996901f11da5dbfd67368c7c28cac9fe2d629d7

linux-postmarketos-grate: upgrade to 6.1.0 stable (!3836) · Merge requests · postmarketOS / pmaports · GitLab

postmarketOS package build recipes
gitlab.com


Các hacker đã thành công patch cho bootloader của n7 vẫn giữ nguyên và cho phép khởi động được bằng u-boot mà không bị brick máy. Các thành phần chuẩn bị là n7 bct.bin đã có sẵn trên re-crypt(grouper.bin) và sbk thì phải đọc trong bài này

  1. tegra_debrick
  2. Unbrick Nexus 7 with another Tegra 3 Device
  3. How to unbrick Nexus 7 without blob.bin

Quảng cáo


Để dump bct.bin và sbk của n7, rồi điền sbk vào $key trong script re-crypt của grouper để re-part lại toàn bộ Tegra GPT trên thiết bị, đồng thời dùng nvflash hoặc fusee-gelee để cài đặt U-boot vào bootloader

Cách build u-boot trên tegra không có hướng dẫn cụ thể, chỉ có thể tham khảo build của imx6 hoặc imx7 trên NXP forums

Tài liệu tham khảo: https://github.com/clamor-s/u-boot/blob/board/doc/board/asus/grouper_common.rst

u-boot/doc/board/asus/grouper_common.rst at board · clamor-s/u-boot

"Das U-Boot" Source Tree with many Tegra 20/30 devices support - clamor-s/u-boot
github.com


# git clone https://github.com/clamor-s/u-boot/

# export CROSS_COMPILE=arm-linux-gnueabi-

# make transformer_t30_defconfig grouper_E1565.config ←cho máy có rev.E1565 mới

Quảng cáo


hoặc:

# make transformer_t30_defconfig grouper_PM269.config ←cho máy có rev.PM269 cũ

hoặc:

# make transformer_t30_defconfig tilapia.config ←cho máy Nexus7 3G tilapia

# make

Chúng ta sẽ có file u-boot-dtb-tegra.bin

Re-crypt sẽ đòi hỏi u-boot-dtb-tegra.bin và SBK của Nexus7 lấy theo link tham khảo ở trên

# git clone https://github.com/clamor-s/re-crypt.git

GitHub - clamor-s/re-crypt: A tool for re-partitioning Tegra 2 and Tegra 3 based product devices.

A tool for re-partitioning Tegra 2 and Tegra 3 based product devices. - clamor-s/re-crypt
github.com

# cd re-crypt ## ← place your u-boot-dtb-regra.bin here
# ./re-crypt.sh -d grouper -k deadbeefdeadc0dedeadd00dfee1dead

Sau đó script sẽ phát sinh ra repart-block.bin để flash vào Nexus7, chứa BCT, bootloader, SBK. Lưu ý là eMMC của máy sẽ xoá trắng toàn bộ, nên backup một ảnh các block của Nexus 7 trước khi flash repart-block.bin vào máy

# wheelie --blob blob.bin
# nvflash --resume --rawdevicewrite 0 1024 repart-block.bin

Sau khi flash repart-block.bin, máy sẽ tự khởi động vào U-boot. Dùng nút Volume Down để di chuyển và nút Power để chọn, U-Boot cần có file extlinux.conf thiết lập trên eMMC hoặc MicroUSB otg gắn ngoài, khởi động kernel → GNU/Linux.

-------------------
File extlinux.conf mẫu:

timeout 10
default POSTMARKETOS
menu title boot prev kernel

label POSTMARKETOS
kernel /vmlinuz
fdt /tegra30-asus-tf600t.dtb
initrd /initramfs
append console=ttyS0,115200n8 rw gpt
-------------------

Update U-Boot bằng cách chép u-boot-dtb-tegra.bin vào MicroUSB otg gắn ngoài, chọn update bootloader trên U-Boot

Khi đã flash repart-block.bin thì sẽ chặn các can thiệp của phần mềm chính hãng vào eMMC, cho phép người dùng tự quyết định cài đặt hệ thống, phân chia lại partition, cài hệ điều hành, update new kernel v.v.. khi kết nối Nexus 7 grouper với PC/Laptop
Chia sẻ

Xu hướng

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019