Flash boot.img mà không cần sử dụng USB fastboot


10

Vì vậy, gần đây tôi đã root điện thoại của mình và thử một hoặc hai ROM. Tôi thấy thật tiện dụng khi bạn có thể sử dụng phục hồi TWRP để cài đặt ROM khác từ thẻ SD, bạn không cần phải kết nối nó với PC.

Tuy nhiên, trên thiết bị của tôi (HTC One S) tôi cũng cần flash một tệp boot.img khác nhau cho mỗi ROM, vì vậy tôi vẫn cần nối điện thoại của mình với PC để chuyển ROM. Nếu tôi không làm điều này, nó sẽ bị kẹt trên màn hình tải. Sau đó tôi phải sử dụng lệnh

fastboot flash boot boot.img

từ thư mục nơi boot.img được đặt.

Có thể flash hình ảnh khởi động này bằng TWRP hoặc bất kỳ cách nào khác mà không cần sử dụng fastboot qua USB?

Câu trả lời:


10

Những gì cần làm là gói boot.img và tạo một tệp zip mới phù hợp để flash qua ClockworkMod hoặc TWRP.

Điều kiện tiên quyết :

  • một môi trường Linux có các gói phát triển thông thường, như Java đã cài đặt. ( Nó cũng có thể áp dụng cho các nền tảng khác, chỉ cần cẩn thận rằng các hướng dẫn ở đây chỉ ra đường dẫn được sử dụng bên dưới, sử dụng dấu gạch chéo về phía trước /, vì vậy hãy lật nó để trở thành dấu gạch chéo ngược \cho môi trường Windows! )
  • công cụ dòng lệnh adb được cài đặt.
  • Công cụ `testsign.jar ' , để ký tệp zip để phục hồi có thể xác thực và xác minh nó là một kho lưu trữ hợp lệ nếu không phục hồi sẽ báo cáo lưu trữ bị hỏng hoặc tương tự.
  • update-binaryứng dụng dòng lệnh , đó là nội bộ để sử dụng với tập lệnh flashable. (Điều này có thể được tìm thấy với bất kỳ zip có thể flash, điều quan trọng là trích xuất nhị phân đó và gửi trong cấu trúc của thư mục như được hiển thị)
  • công cụ dòng lệnh zip.

Giả sử thư mục của bạn được gọi là workdir , để thảo luận, hãy gọi đây là thư mục làm việc, sao chép boot.imgthư mục đó và tạo cấu trúc thư mục sau - META-INF/com/google/android, điều này rất quan trọng! Và trong META-INF/com/google/android, sao chép ứng dụng nhị phân được gọi update-binaryvào thư mục đó. Vì vậy, cấu trúc thư mục nên như thế này:

+ workdir/
     +
     |
     +--+ boot.img
     |
     |
     +--+ META-INF/
              +
              |
              +--+ com/
                    +
                    |
                    +--+ google/
                           +
                           |
                           +--+ android/
                                   +
                                   |
                                   +--> update-binary
                                   |
                                   +--> updater-script

Đối với updater-script, sao chép nội dung sau đây:

ui_print("Please wait, boot.img being flashed...");
show_progress(0.1, 0);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));
show_progress(0.1, 10);
ui_print("It is now safe to reboot! :)");

Hãy nhớ rằng: Đừng nhầm lẫn ở đây, tập lệnh cập nhật như được hiển thị, nên được để yên và nguyên trạng, vì vậy đừng thử lật dấu gạch chéo về phía trước thành dấu gạch chéo ngược nếu thực hiện điều này trong môi trường Windows.

Quay trở lại cha mẹ của cấu trúc thư mục, tức là bên ngoài workdir và làm như sau, chúng ta sẽ tạo một tệp zip từ đây:

zip -r my_custom_flashable_boot_unsigned.zip workdir/là một hàm đệ quy, điều này sẽ nén mọi thứ vào tệp có tên my_custom_flashable_boot_unsign.zip .

Cuối cùng, để ký vào tệp zip, hãy đưa ra điều này:

java -classpath testsign.jar testsign my_custom_flashable_boot_unsigned.zip my_custom_flashable_boot_signed.zip

Sau đó, vấn đề của nó là đẩy SDCard qua adb push my_custom_flashable_boot_signed.zip /sdcard/và khôi phục thủ công và chỉ định kho lưu trữ zip đó (ví dụ my_custom_flashable_boot_sign.zip ) trong đó nó sẽ thực hiện nhấp nháy cho bạn.


Đẹp, tôi thích tự tạo ra những thứ rất tuyệt vời. Đây không phải là điểm mà tôi cần máy tính của mình cho việc này, vì tôi có thể nhận được các khóa khởi động có thể flash cho tất cả các ROM của mình trên một thư mục của thẻ SD, điều này sẽ dẫn đến tình huống tôi muốn.
MarioDS

2

Nếu bạn có flash_imagetệp nhị phân, thì bạn có thể thực hiện trên thiết bị thông qua trình giả lập thiết bị đầu cuối (flash boot, phần còn lại sử dụng recovery).

Cú pháp: flash_image boot /sdcard/boot.img

Thời gian tự khuyến mãi

Tôi có một ứng dụng cung cấp GUI cho hệ nhị phân. Tìm nó ở đây .

Nếu bạn không có tệp nhị phân đó, nó có thể được cài đặt (Google nó - bạn phải tải xuống sau đó sao chép nó vào /system/binthư mục.

Điều này không hoạt động trên tất cả các thiết bị, tuy nhiên đó là cách duy nhất nảy ra trong đầu.


Nếu tôi hiểu rõ, trình giả lập thiết bị đầu cuối chỉ là một ứng dụng thông thường mà bạn chạy trong khi điện thoại của bạn được khởi động ở chế độ bình thường? Nó sẽ không gây ra sự cố flash boot trong khi HĐH đang chạy?
MarioDS

1
@MarioDeSchaepmeester Điện thoại chỉ sử dụng khởi động trong khi khởi động;)
Liam W

Đã phải hạ cấp nó, vì flash_imagecó yêu cầu phải sao chép và gọi từ thiết bị cầm tay bằng cách sử dụng adb shell, tài liệu ( tôi có thể thêm, bạn không cung cấp liên kết!) Đang yêu cầu trả lại SDCard với bộ bit exec (* ý tưởng tồi ) và đòi hỏi phải có nghĩa là root su, hơn nữa, "tự quảng cáo" liên quan đến ứng dụng của bạn, tính bằng euro, nơi tôi đến, là 6.09 euro, rất đắt ... fastboot là chuẩn mực, CM có những cách kỳ quặc riêng , - có gì khác với fastbootflash_image?
t0mm13b

Ngoài ra nhị phân có thể được sử dụng mà không cần máy tính.
Liam W

0

Có thể flash hình ảnh khởi động này với TWRP [...] không?

đổi tên tập tin boot.emmc.win và đặt nó vào TWRP/BACKUPS/(tạo thư mục mới). khôi phục bản sao lưu từ menu TWRP thông thường

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.