AOSP沙盒android 11

发布于:2024-11-04 ⋅ 阅读:(70) ⋅ 点赞:(0)

这里介绍一下aosp装系统

什么是aosp
AOSP(Android Open Source Project)是Android操作系统的开源版本。
它由Google主导,提供了Android的源代码和相关工具,供开发者使用和修改。
AOSP包含了Android的核心组件和API,使得开发者能够创建自己的Android版本或在现有的Android设备上进行自定义开发。
由于其开源性质,AOSP可以被用于各种设备,包括智能手机、平板电脑、电视和其他嵌入式设备。
根据上面总结的来说 你可一将AOSP置放于各种硬件上来达到安卓系统的目的

先说一下环境

ubantu 20.04版本  硬盘必须不能低于500G 并且分配四核心四线程
修改好 ubantu的源
这里需要的第三方软件
sudo apt-get install libncurses5

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-
multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev
lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig libncurses5	

配置git
git config --global user.email 11111111@qq.com
git config --global user.name "jiuweiyaohu"

上面的那个git需要配置你自己的邮箱地址以及名称 可以随便写也可以正确

下载源码

北方用清华镜像源
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/

南方用中科大镜像源
http://mirrors.ustc.edu.cn/help/aosp.html


如下图  用第一个办法就行 有时候会提示连接量过大 用清华镜像第二个下载也行

下载图片

开始修改Python

刚开始的python是2.xx 需要修改到3.xx
sudo apt install python3
python3 --version
sudo apt install python3-pip
sudo ln -s /usr/bin/x<这里是 python3 --version 这个命令得到的结果> /usr/bin/python

开始创建AOSP目录

mkdir ~/bin
cd ~/bin

然后将下载的安装包转移到ubantu的 ~/bin目录下
tar vxf <转移的那个zpi包>

开始下载repo

repo 是一个管理多个 Git 仓库的工具,主要用于 Android 开发。
它是 Google 为 Android 开源项目(AOSP)开发的,旨在简化和协调多个 Git 仓库的下载和管理。
repo 的主要特点:
简化管理:repo 提供了一种统一的方式来管理多个 Git 仓库,避免了手动处理每个仓库的复杂性。
Manifest 文件:repo 使用一个称为“manifest”的 XML 文件,描述了项目中各个 Git 仓库的配置、分支和路径等信息。
同步仓库:通过 repo sync 命令,可以一次性同步所有相关的 Git 仓库。
版本控制:repo 支持处理项目中不同版本和分支的切换。

echo "PATH=~/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install curl
curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' | base64 -d > ~/bin/repo
chmod a+x ~/bin/repo
export REPO_URL='https://gerrit-googlesource.proxy.ustclug.org/git-repo'
cd aosp

到此为止! 一定要镜像进行快照 方便以后同步其他版本的Android

开始进行同步指定版本源码

# 在这个网址 找到你手机拥有的驱动
https://developers.google.com/android/drivers#redfinrd1a.200810.020

在下面这个地址中找到你所需要的版本
https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn

找到驱动

找到版本号

比如我这个用的手机是Pixel5 那么就找最低的哪个版本
也就是 android-11.0.0_r7
中科大
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-11.0.0_r7
谷歌原生
repo init -u https://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-11.0.0_r7

然后开始  记住了 如果要执行下面的命令一定要在aosp目录 要不然他会复制到你所在的终端目录下 
repo sync

接下来就是时间教长了 需要等待 

完成之后需要进行快照方便下次编译其他版本使用

会出现错误如果在aosp目录
warning: repo is not tracking a remote branch, so it will not receive updates
================================================================================
Repo command failed: RepoUnhandledExceptionError
	GitCommandError: 'reset --keep v2.48^0' on repo failed
stderr: error: Entry 'error.py' not uptodate. Cannot merge.
fatal: 不能重置索引文件至版本 'v2.48^0'。

cd ~/bin/aosp/.repo/repo
git pull
cd ~/bin/aosp

这次就会很快了因为以前有同步过

这个是完成之后截图

安装编译环境

如果你已经安装了 java环境 那么就不需要安装了
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk -y

下载驱动

注意看我下载的版本就是我构建的版本

下载下来然后放入到aosp目录中
并且进行解压
tar -zxvf google_devices-redfin-rd1a.200810.020-3940ace1.tgz 
tar -zxvf qcom-redfin-rd1a.200810.020-e99cf7f8.tgz 
运行这个文件
 ./extract-google_devices-redfin.sh
 会让你阅读信息 按回车就好  注意到8.几就别一直按了  一直到 8.e 会让你输入 I ACCEPT

 ./extract-qcom-redfin.sh 
 会让你阅读信息 按回车就好  注意到8.几就别一直按了  一直到 8.e 会让你输入 I ACCEPT


完成之后可以删除那两个压缩包节省空间

就是这两个文件

输入 我同意
输入我同意

接下来就可以进行编译版本 需要查看

在这里查看自己的机型进行编译
https://source.android.google.cn/setup/build/building-kernels#id-versio
查看下面实例进行编译
https://source.android.com/setup/build/building

接下来执行命令
source build/envsetup.sh
lounch
	其中有好多 
	userdebug  
	这是用于开发和测试的版本,包含调试信息。
	允许更多的调试功能和开发者选项,适合开发者进行应用程序的调试和系统开发。
	默认情况下,eng 版本允许 root 权限。
	eng
	这是介于 user 和 eng 之间的版本,适合开发者和测试人员。
	该版本具有某些调试功能,但通常比 eng 更加稳定。
	默认情况下,userdebug 版本也允许 root 权限,但相比 eng,它限制了一些调试功能,适合进行较为稳定的测试。
	user
	这是面向最终用户的版本,通常是发布给普通用户的版本。
	该版本经过优化,具有更好的性能和稳定性,去掉了大部分调试信息和开发者选项。
	默认情况下,user 版本没有 root 权限,用户无法通过常规方式获取超级用户权限。
	此版本旨在提供最佳的用户体验,通常不适合开发和调试。
按照自己的代号去找
到这个目录  (最后一个值按照你自己的去替换)
	/aosp/device/google/redfin
	增加编译选项 
	mkdir AndroidProducts.mk
	下面是我自己的机型 自己复制的
	#
# Copyright 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

PRODUCT_MAKEFILES := \
    $(LOCAL_DIR)/aosp_redfin.mk \
    $(LOCAL_DIR)/aosp_redfin_user.mk \
    $(LOCAL_DIR)/aosp_redfin_eng.mk \

COMMON_LUNCH_CHOICES := \
    aosp_redfin-userdebug \
    aosp_redfin-user \
    aosp_redfin-eng

然后 wq保存

创建新的编译条件
vi aosp_redfin_user.mk
PRODUCT_NAME := aosp_redfin
PRODUCT_DEVICE := redfin
PRODUCT_BRAND := Google
PRODUCT_MODEL := Pixel 5
PRODUCT_MANUFACTURER := Google
PRODUCT_DEFAULT_LANGUAGE := en-US
PRODUCT_BUILD_TYPE := user
wq 保存

vi aosp_redfin_eng.mk
PRODUCT_NAME := aosp_redfin
PRODUCT_DEVICE := redfin
PRODUCT_BRAND := Google
PRODUCT_MODEL := Pixel 5
PRODUCT_MANUFACTURER := Google
PRODUCT_DEFAULT_LANGUAGE := en-US
PRODUCT_BUILD_TYPE := eng

回到aosp目录 从新添加环境
source build/envsetup.sh

查看自己手机的机型|代号
我的在这里
新增加完成之后的

开始编译

完成了之后就可以开始选择编译了 一般是选择user版本是最好的 这样很多软件都不会去检测了

选择编译

我分配的比较少内核 就j4 最靠谱 你可以 j8|16 
make -j4  

之后就是继续等待

开始刷机

下一章节介绍