编译安装适用于树梅派4B的android系统

2023-11-21 00:04

本文主要是介绍编译安装适用于树梅派4B的android系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、下载android源码 aosp

一般来说需要通过storage.googleapis.com 下载,但是由于网络限制的原因,采用通过清华源镜像来下载。

1.打开 清华源AOSP镜像   (可以参考里面步骤下载)

2.下载repo 工具

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo
chmod a+x ~/bin/repo

3.创建下载源码的目录

mkdir ~/aosp
cd ~/aosp

4. 下载android 12 源码,增加树梅派相关代码配置 可参考树梅派android 源码

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r21
git clone https://github.com/android-rpi/local_manifests .repo/local_manifests -b arpi-12
repo sync

二、编译源码

1.编译环境需安装些工具(可能列的不全)

sudo apt install libssl-dev python3-setuptools 

2.编译AOSP

 source build/envsetup.shlunch rpi4-engmake ramdisk systemimage vendorimage

3.下载内核源码

mkdir ~kernel
cd ~kernel
repo init -u https://github.com/android-rpi/kernel_manifest -b arpi-5.10
repo sync

4.编译内核 (android 11 后可以单独编内核)

cd ~kernel/ 
build/build.sh

三、刷系统

1.准备一张sd卡,16G

2.将SD分区(最好用命令行分区,试过用Gparted不行)

设置如下:p1  128MB for boot : Do fdisk, set W95 FAT32(LBA) & Bootable type, mkfs.vfatp2 1024MB for /system : Do fdisk, new primary partitionp3  128MB for /vendor : Do fdisk, new primary partitionp4 remainings for /data : Do fdisk, mkfs.ext4Set volume label of /data partition as userdata: use -L option for mkfs.ext4

具体方法如下:

sudo fdisk -l

得到SD卡路径是/dev/sdb

sudo fdisk /dev/sdb
d:先删掉/dev/sdb1
n:创建新的四个分区(/root /system /vendor /data),都是primary分区类型,设置分区大小时输入需要的MB。

a:设置boot分区为bootable
t:改变分区的类型(W95 FAT32 (LBA),Linux)
$ sudo mkfs.vfat -n boot /dev/sdb1
$ sudo mkfs.ext4 -L “system” /dev/sdb2
$ sudo mkfs.ext4 -L “vendor” /dev/sdb3
$ sudo mkfs.ext4 -L “data” /dev/sdb4
 

3.写入 system & vendor 分区

cd ~/aosp/out/target/product/rpi4
 sudo dd if=system.img of=/dev/sdb2 bs=1M
sudo dd if=vendor.img of=/dev/sdb3 bs=1M

4.复制固件到boot分区 (直接复制不需要命令行)

 device/arpi/rpi4/boot/* to p1:/out/target/product/rpi4/ramdisk.img to p1:/
 <kernel directory>/out/arpi-5.10/dist/Image.gz to p1:/<kernel directory>/out/arpi-5.10/dist/bcm2711-rpi-*.dtb to p1:/<kernel directory>/out/arpi-5.10/dist/vc4-kms-v3d-pi4.dtbo to p1:/overlays/

5.搞完,直接插卡开机

参考文章:树莓派Android10源码试装_树莓派 android系统编译-CSDN博客

GitHub - android-rpi/device_arpi_rpi4 at arpi-12

AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

这篇关于编译安装适用于树梅派4B的android系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/398409

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定