编译安装适用于树梅派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

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详