Về cách build Android 15 mình tham khảo tại Devlinux.vn blog Xây dựng Android Automotive 15 cho Raspberry Pi 4
Lưu ý duy nhất khi áp dụng guide này là đến bước 3.1 repo init, thì phải dùng lệnh (thay revision)
repo init -u https://android.googlesource.com/platform/manifest -b android-15.0.0_r26A. Tổng quan
Hẳn các bạn dùng Android đều quen thuộc với việc khởi động máy sẽ có dòng Powered by Android này, tuy nhiên chúng ta hoàn toàn có thể thay đổi được Boot animation này sang 1 video hoặc hình ảnh khác.Bởi cái hay của Android cũng như Linux là khả năng tùy biến :v
Mình đã thay từ giao diện màn loading Android sang Meme Cat saying Huh! này
B. Phân tích
Android sẽ lấy Boot animation ở bootanimation.zip tại /system/media
Có 2 cách để đặt được boot animation của riêng bạn vào board
- Sửa lại cấu hình build, để build ra image chứa sẵn boot animation
- Thay thế trực tiếp vào /system/media trên board khi đã Flash xong
Cấu trúc 1 Bootanimation.zip
bootanimation.zip
│
└───part0 [folder name]
│ │ 000.png [or .jpg]
│ │ 001.png
│ │ 002.png
│ │ ...
│
└───part1
│ │ 000.png
│ │ 001.png
│ │ 002.png
│ │ ...
└───desc.txt [animation specification][width] [height] [frames per second]
[type ("p" or "c"] [loop count] [pause] [folder] [bg color (optional)]
[type ("p" or "c"] [loop count] [pause] [folder] [bg color (optional)]
Etc. End off with an empty line. - [width]
- Chiều rộng ảnh
- [height]
- Chiều cao ảnh
- [frames per second]
- Số khung hình trên giây
- [type]
- Type p : Boot animation sẽ cắt ngay khi OS load xong --> Trông sẽ nhanh hơn
- Type c : Chạy trọn vẹn cho hết Boot animation mới sang OS --> Dễ khiến người dùng nhầm là khởi động bị chậm
- [loop count]
- Số lần lặp lại cho phần này
- Lưu ý nếu đặt là 0 nó sẽ lặp lại mãi mãi
- [pause]
- Dừng lại bao nhiêu khung hình giữa các part
- [folder]
- folder chứa part
- [bg color]
- background color
Ví dụ như
800 480 30p115part0 FFFFFFp00part1 FFFFFF
C. Thực hành thôi
1. Tải video mong muốn về
2. Sau khi có video ta dùng ffmpeg để cắt các khung hình ra
- Nếu chưa có ta cài bằng cách
sudo apt update
sudo apt install ffmpeg- Để đơn giản ở đây mình sẽ tạo duy nhất 1 part
ffmpeg -i input.mp4 -vf "fps=8,scale=1280:720" -qscale:v 6 -vframes 120 part0/%03d.jpg- Cách tính thông số
total_frames = fps × duration_in_secondsNếu bạn muốn Boot animation có độ dài 15s, giả sử chọn fps = 8, thì ta cần tạo ra 8*15 = 120 khung hình
Lưu ý: Tăng fps --> Tăng số khung hình --> Tăng kích thước bootanimation.zip. Android chỉ chấp nhận bootanimation.zip kích thước từ 2-5Mb, nếu quá sẽ không thể hiển thị
3. Set config file desc.txt
Như đã miêu tả bên trên, hiện mình chọn thông số như sau
1280 720 8
p 1 0 part0 000000
4. Nén thư mục part0 và desc.txt vào bootanimation.zip
zip -r -0 bootanimation.zip desc.txt part05. Copy bootanimation.zip vào board
- Kết nối vào board thông qua adb command, tham khảo tại [Android]2. Cách Kết nối vào Raspberry Pi 4 dùng ADB (Android Debugger Bridge)
- Trước khi copy vào board, phải mount lại hệ thống để enable read/write, hiện tại mặc định là Read-only system. Không thể tạo 1 file mới
mount -o rw,remount /- Mount lại hệ thống, giờ đã có thể thoải mái tạo file
- Ctrl + D để back ra ngoài, đến thư mục lưu bootanimation
adb push </path/to/bootanimation.zip> /system/media

0 Nhận xét