Chào mừng bạn đến Diễn Đàn ChơiMobile

Cộng đồng Mobile hàng đầu Việt Nam, Phát triển Android, iOS, Kỹ Thuật Mobile. Đăng ký ngay để tạo chủ để và cùng thảo luận !

Dev MIUI Android OS (ROM) Development Instruction: Dump & Build Fastboot Rom (Miflash Rom) | 08/07/2016

Thảo luận trong 'MIUI Android Development' bắt đầu bởi MạnhIT, 8/7/16.

  1. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    #1 MạnhIT, 8/7/16
    Chỉnh sửa cuối: 20/11/17
    MIUI Android Development.jpg

    [h2]MIUI Android OS (ROM) Development Instruction
    ManhIT - ChoiMobile.VN
    [/h2]
    Xin chào anh em !
    Sau một thời gian Dev Rom MIUI mình cũng có chút kinh nghiệm, trong bài viết này mình sẻ cho anh em về những gì mình đã làm và tích lũy được.

    Chuẩn bị:
    - Máy tính Windows 64bit (khuyên dùng Windows 10 64bit)
    - Adb (Android Debug Bridge) & Fastboot tool: http://choimobile.vn/threads/43641/
    - Miflash : http://choimobile.vn/threads/66410/
    - Mi PC Suite (China) : http://zhushou.xiaomi.com/
    - Java JDK : http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    - Một số thuật ngữ, từ viết tắt, các thử cần biết:
    1. Dev = Developement = Phát triển
    2. Devs = Developers = Nhà phát triển
    3. EDL = Emergency Download Mode = Chế độ Download khẩn cấp (Qualcomm HS-USB QDLoader 9008)
    4. Rom Stock = Rom gốc
    5. Inject = Tiêm, chèn vào cái gì đó | Inject Root = Tiêm/chèn Root vào system...
    6. Những điều cơ bản cần biết cho newbie - Rom, Root, Recvery, Bootloader, Brick... là gì ?
    7. Mở cửa sổ gõ lệnh CMD: nhấn giữ phím shift và nhất chuột phải chọn "Open command windows here"

    Về quá trình mình bắt đầu Dev Rom MIUI đến nay:
    (Anh em nên đọc để hiểu hơn)
    Bắt đầu thực hành nhé !
    Tạm thời mình sẽ chia sẻ trước về cách Build Fastboot Rom (Miflash Rom), xử lý Kernel để fix dm-verity. Còn những vấn đề chung về Android như Apk, ApkTool,... thì mình sẽ chia sẻ trong loạt bài về Android OS (ROM) Developement Instruction tại box Thảo Luận - Phát Triển Rom/ Lập trình Mobile

    - Build Fastboot Rom (Miflash Rom) Từ Các Files Dump
    - Build Fastboot Rom (Miflash Rom) Từ Files Rom Stock (Build Rom No-Root)
     

    Các file đính kèm:

    3 people like this.
  2. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    #2 MạnhIT, 8/7/16
    Last edited by a moderator: 9/7/16
    I. Build Fastboot Rom (Miflash Rom) Từ Các Files Dump.
    Với cách này dùng cho các máy có TWRP, hoặc Root được để dump các phân vùng ra và chuyển thành Rom Fastboot !

    Tóm tắt cách làm:
    - Anh em làm Rom trên máy (việt hoát, fix lỗi,...) hoặc muốn build một bản ưng ý về dạng Rom Fastboot (như Rom EU,... chẳng hạn) sau khi làm xong mọi thử ok thì dump phân vùng System ra thành file system_raw.img và phân vùng Boot (Kernel) thành file boot.img và copy ra thử mục làm việc trên PC
    - Download file Rom Fastboot gốc về, giải nén ra
    - Download bộ tool ANDROID_IMG_REPACK_TOOLS_CYGWIN_x64-86_6.0.1.zip về giải nén ra, dùng tool ext2simg.exe đề conversion file system.img dump (raw ext4) về định dạng của Rom Fastboot (sparse) rồi thay thế file system.img mới cho file system.img trong bộ Rom Fastboot gốc, thay file boot.img cho file boot.img trong bộ Rom Fastboot gốc
    • Lệnh conversion file system.img dump (raw ext4) về định dạng của Rom fastboot (sparse):
      Mã:
      ext2simg -v [đường dẫn file đầu vào(file dump)] [đường dẫn file dump ra]
      Ví dụ: ext2simg -v system_raw.img system.img
    Thực ra để nguyên file dump ra cũng có thể flash qua Miflash được, nhưng file dump ra từ máy ở định dạng raw ext4 có các vấn đề sau:
    1. Dung lượng sẽ lớn = tổng dung lượng của phân vùng đó, trong khi số dữ liệu trong phần vùng chưa đầy hết phần vùng, ví dụ cỡ của phân vùng system là 3GB nhưng còn chống tới 1GB - tức mới sử dụng có 2GB, file dump ra ở dạng raw ext4 = tổng dung lượng của phân vùng system = 3GB, nhưng nếu conversion file system.img dump (raw ext4) về định dạng của Rom fastboot (sparse) thì file system.img chỉ có 2GB thôi, vậy là tiết kiệm được 1GB lưu trữ trên ổn cứng và 1GB khi upload/download
    2. File ở định dạng raw ext4 rất dễ dàng để đọc và copy các file bên trong (chắc anh em cũng hiều là gì rồi !)
    3. Đưa về định dạng Rom fastboot gốc rõ dàng là CHUẨN hơn và khi flash cũng sẽ nhanh và ít lỗi hơn !

    - Thay file Bootloader (emmc_appsboot.mbn) unlock sẵn vào nếu muốn build Rom locked (không cần unlock bootloader) để flash được cho các máy chưa unlock Bootloader
    - Thử flash Rom, nếu mọi thứ ok thì đóng gói (nén zip) lại rồi upload nên chia sẻ cho mọi người.

    Chi tiết quá mình build bản fastboot Rom SpaceX V6.7.7 Locked cho Xiaomi Mi Max:

    Video hướng dẫn Dump Rom và Build Rom fastboot / Miflash Rom Xiaomi

    II. Build Fastboot Rom (Miflash Rom) Từ Files Rom Stock (Build Rom No-Root).

    - Với cách này áp dụng trong các trường hợp không Root được máy, không có Recovery !
    - Cần máy tính chạy Linux (khuyên dùng Ubuntu 64bit) và tất nhiên phải biết cơ bản về sử dụng hệ điều hành Linux

    Tóm tắt cách làm:
    - Cần có file các file Rom .img, thường thì lấy bản Rom fastboot Xiaomi cấp, có thể Download từ trang chủ, còn một số trường hợp không có Rom fastboot thì phải tùy cơ ứng biết để sao có được Rom fastboot.
    - Giải nén file Rom tải về giải nén và thực hiện xử lý chỉnh sửa các file bên trong (system.img, boot.img,...), sau đó thay thế file mới đã sửa xong vào:
    1. Cách conversion các file .img gốc ở định dạng sparse thành định dạng raw ext4 và mod/chỉnh sửa,... (làm trên Linux)

    (Tạm dừng tại đây, mình cần viết bài bồ sung liên quan trước: cài đặt Ubuntu và setup môi trường làm việc trên Ubuntu,... )
     

    Các file đính kèm:

    2 people like this.
  3. mrhoanghy92

    Official Member

    28/3/16
    65
    34
    0
    Nam
    Hưng Yên
    :D:D:D:D:D:D 6h15p post bài, dự là đêm qua không ngủ xem bóng đá
     
    2 people like this.
  4. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    :p
     
    2 people like this.
  5. mrhoanghy92

    Official Member

    28/3/16
    65
    34
    0
    Nam
    Hưng Yên
    thark bác nhá bài viết rất chi tiết,bác chỉ em xác định được system.img là block bao nhiêu,và các phân vùng khác là bao nhiêu, để dump ra với, em đánh lệnh mount nó hiện ra nhiều mà đọc không hiểu. em hỏi ở topic kia bác chằng trả lời.
     
  6. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    ls -l /dev/block/platform/.../by-name/

    đoạn ... mỗi máy sẽ khác nhau, dùng explorer mở ra xem tên thư mục là gì !
     
    2 people like this.
  7. mrhoanghy92

    Official Member

    28/3/16
    65
    34
    0
    Nam
    Hưng Yên
    thark bác nhiều
     
  8. tngcphng

    Newbie

    2/4/13
    8
    3
    3
    Nam
    build từ system.img extract như nào bạn ơi: deodex, symlink lấy từ đâu, set permission lấy từ đâu?
     
  9. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    chỉ build từ file .img (rom gốc, dump ra, hoặc system.new.dat)
     
  10. tngcphng

    Newbie

    2/4/13
    8
    3
    3
    Nam
    luxry rom for rmn 3 họ làm đc thây. nhưng mình ko biết họ lấy symlink với permission ở đâu để thêm vào update script. mình tưởng bạn chuyên sâu về phân này nên muốn hỏi :D
     
  11. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    symlink trong file update stock có, con bình thường lấy mới file mount system.img ra
     
  12. tngcphng

    Newbie

    2/4/13
    8
    3
    3
    Nam
    ko có bạn à. trong stock nó toàn kiểu img như hướng dẫn của bạn thui. làm cách nào để lấy ra đầy đủ như này ko. vì thiếu một vài cái là rom nó ko boot vào đc
     
  13. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    symlink và permission đây đù đó mà nhỉ ! :rolleyes:
     
  14. tngcphng

    Newbie

    2/4/13
    8
    3
    3
    Nam
    @@ cái trên đâu phải stock mà đầy đủ, người ta làm săn rồi đấy nhung ko biết lấy đâu ra
    bạn vào mà xem stock của bạn, cụt ngủn mấy dòng thôi
     
  15. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    ???
     
  16. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    đó là dạng flash file system.img không cần symlink
     
  17. tngcphng

    Newbie

    2/4/13
    8
    3
    3
    Nam
    Thì ý mình muốn hỏi là cái rom extract từ system.ing ra sau đó zip nó lại để flash thì đc. Nhưng ko có symlink với permis thì nó bị treo logo. Bạn có biết cách nào mà lấy đc cái đấy ko. Như kiểu buid rom từ android kitchen ấy. Cái androi kitchen cũng tạo ra đc update script nhưng ko đủ

    Sent from my Redmi Note 3 using Tapatalk
     
  18. MạnhIT

    MạnhIT Administrator
    Thành viên BQT Administrator

    10/2/13
    3,955
    4,624
    113
    Nam
    Biết mình có làm, nhưng làm trên Ubuntu ! Mình sẽ bổ sung trong seris về Android OS Development...
     
    2 people like this.
  19. tngcphng

    Newbie

    2/4/13
    8
    3
    3
    Nam
    Vậy hóng típ vậy. Thank bạn trước :D

    Sent from my Redmi Note 3 using Tapatalk
     
  20. tienquynh93

    Official Member

    21/3/15
    85
    52
    18
    Nam
    bạn ơi cho mình hỏi mình muốn sứa file thông tin với file người đóng góp thì có thề tìm nó ở đâu vậy?
     
    2 people like this.

Chia sẻ trang này