devlinux
Android 15 mang đến nhiều cải tiến về hiệu suất, bảo mật và trải nghiệm người dùng. Trong bài viết này, mình sẽ hướng dẫn các bạn xây dựng phiên bản hệ điều hành Android 15 cho Automotive chạy trên board Raspberry Pi 4. Đây là một dự án thú vị dành cho những ai muốn khám phá và tận dụng tối đa khả năng của Raspberry Pi 4.
Các bạn có thể dùng cấu hình sau.
sudo apt-get update
sudo apt-get install openjdk-11-jdk git python3 bison flex git bc build-essential curl g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-dev liblz4-tool libncurses5 libncurses5-dev meson cmake pkg-config -y
Mã nguồn Android thuộc tập hợp các kho lưu trữ Git do Google lưu trữ. Để tải xuống toàn bộ mã nguồn Android cho thiết bị chúng ta sẽ cần sử dụng tới tool repo.
mkdir -p ~/.bin
PATH="${HOME}/.bin:${PATH}"
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+rx ~/.bin/repo
git config --global user.name "your name"
git config --global user.email "your email"
mkdir ~/android
cd ~/android
repo init -u https://android.googlesource.com/platform/manifest -b android-15.0.0_r2 --depth=1
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-15.0/manifest_brcm_rpi.xml --create-dirs
curl -o .repo/local_manifests/remove_projects.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_local_manifest/android-15.0/remove_projects.xml
repo sync -j4
Giải thích:
mkdir ~/rpi_kernel
cd ~/rpi_kernel
repo init -u https://android.googlesource.com/kernel/manifest -b common-android15-6.6-lts
curl -o .repo/local_manifests/manifest_brcm_rpi.xml -L https://raw.githubusercontent.com/raspberry-vanilla/android_kernel_manifest/android-15.0/manifest_brcm_rpi.xml --create-dirs
repo sync
Di chuyển tới folder chứa mã nguồn Android sau đó cấu hình build cho raspberrry pi4.
source build/envsetup.sh
lunch aosp_rpi4_car-ap3a-userdebug
make bootimage systemimage vendorimage
Giải thích:
Di chuyển tới folder chứa mã nguồn kernel.
tools/bazel build --config=fast --config=stamp //common:rpi4
Có thể tìm thấy kernel đã biên dịch, dtbs và dtbo trong bazel-bin/common/rpi4/arch/arm64/boot
Trong thời gian chờ đợi quá trình build diễn ra, chúng ta sẽ tiến hành phân vùng SD card.
Tạo các phân vùng như sau:
Cài đặt tool gparted.
sudo apt-get install gparted -y
Tiến hành phân vùng với giao diện trực quan.
Tạo các phân vùng với parted. Giả sử thẻ SD của bạn được nhận diện là /dev/sdb, bạn sẽ thay thế sdX bằng sdb trong tất cả các lệnh
sudo parted /dev/sdX --script mkpart primary fat32 1MiB 257MiB
sudo parted /dev/sdX --script mkpart primary ext4 257MiB 2305MiB
sudo parted /dev/sdX --script mkpart primary ext4 2305MiB 3329MiB
sudo parted /dev/sdX --script mkpart primary ext4 3329MiB 100%
Định dạng phân vùng.
sudo mkfs.vfat /dev/sdX1
sudo mkfs.ext4 -L system /dev/sdX2
sudo mkfs.ext4 -L vendor /dev/sdX3
sudo mkfs.ext4 -L userdata /dev/sdX4
Giải thích:
Sau khi phân vùng thành công các bạn sẽ thu được kết quả như sau (ở đây thiết bị của mình được nhận diện là sdb):
Di chuyển vào thư mục chứa mã nguồn Android 15.
sudo dd if=out/target/product/rpi4/boot.img of=/dev/<p1> bs=1M
sudo dd if=out/target/product/rpi4/system.img of=/dev/<p2> bs=1M
sudo dd if=out/target/product/rpi4/vendor.img of=/dev/<p3> bs=1M
Giải thích:
sudo umount /mnt
sudo eject /dev/<p>
Cắm thẻ SD vào Raspberry Pi 4 và khởi động.
Tài liệu tham khảo: https://github.com/raspberry-vanilla/android_local_manifest
devlinux
0 Bình luận