这里介绍一下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
之后就是继续等待
开始刷机
下一章节介绍