首页
社区
课程
招聘
[原创]Android 系统源码下载编译刷机
发表于: 2022-10-26 19:22 8712

[原创]Android 系统源码下载编译刷机

2022-10-26 19:22
8712

Google原始刷机镜像

不同Android版本对应标记

源代码标记和 build

Google 的驱动程序

刷写设备

https://android.googlesource.com/platform/build/+/master/tools/docker

编译之前需下载制定型号的驱动

fastboot adb 工具下载

 
 
 
 
git config --global user.email "youremil.com"
git config --global user.name "yourname"
git config --global user.email "youremil.com"
git config --global user.name "yourname"
#目前下载清华的AOSP代码总出现问题, 有一个可行的方法就是下载最新的月更新tar包: 这个不省心 不推荐
 #请参考:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
 wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
 tar xf aosp-latest.tar
 
# 第二种方法
 cd /home/yourname/.bin
 curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
 chmod +x repo
 # 使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里
 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
 # 打开~/.bashrc,添加行:
 export PATH=/home/yourname/.bin:$PATH
 source .bashrc
 repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r46
 repo sync
# 完成代码就同步下来了
 
# --depth=1   拉取代码的深度  不推荐 可能会出现网络问题导致代码异常
# 同步失败时 可尝试切换镜像源
1. 修改.repo/manifests.git/config
2. 修改 url 为 (中科大镜像) git://mirrors.ustc.edu.cn/aosp/platform/manifest
 
 #清华源的打包方式是没法在一开始就指定分支的, 所以需要切换:
 #在.repo/manifests文件夹下切分支,在该文件下使用
 git branch -a
 #即可看到所有的分支信息,使用
 git checkout <分支>
 #切换到对应的分支即可,切换完后返回工作目录重新repo sync 一遍。
 
# 创建次级仓库 下载到所在目录
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-4.0.1_r1 --mirror
# 以下说明假定镜像创建在 /usr/local/aosp/mirror 中。首先,创建并同步镜像本身。请注意 --mirror 标记,该标记只能在创建新客户端时指定
mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync
# 同步镜像后,您就可以从镜像创建新客户端了。请注意,您必须指定一个绝对路径
mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync
#目前下载清华的AOSP代码总出现问题, 有一个可行的方法就是下载最新的月更新tar包: 这个不省心 不推荐
 #请参考:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
 wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
 tar xf aosp-latest.tar
 
# 第二种方法
 cd /home/yourname/.bin
 curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
 chmod +x repo
 # 使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里
 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
 # 打开~/.bashrc,添加行:
 export PATH=/home/yourname/.bin:$PATH
 source .bashrc
 repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r46
 repo sync
# 完成代码就同步下来了
 
# --depth=1   拉取代码的深度  不推荐 可能会出现网络问题导致代码异常
# 同步失败时 可尝试切换镜像源
1. 修改.repo/manifests.git/config
2. 修改 url 为 (中科大镜像) git://mirrors.ustc.edu.cn/aosp/platform/manifest
 
 #清华源的打包方式是没法在一开始就指定分支的, 所以需要切换:
 #在.repo/manifests文件夹下切分支,在该文件下使用
 git branch -a
 #即可看到所有的分支信息,使用
 git checkout <分支>
 #切换到对应的分支即可,切换完后返回工作目录重新repo sync 一遍。
 
# 创建次级仓库 下载到所在目录
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-4.0.1_r1 --mirror
# 以下说明假定镜像创建在 /usr/local/aosp/mirror 中。首先,创建并同步镜像本身。请注意 --mirror 标记,该标记只能在创建新客户端时指定
mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync
# 同步镜像后,您就可以从镜像创建新客户端了。请注意,您必须指定一个绝对路径
mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync
# 删除所有 .git仓库 然后自己新建 git init
find . -name .git | xargs rm -fr
# 删除所有 .git仓库 然后自己新建 git init
find . -name .git | xargs rm -fr
build ID 标记 版本 支持的设备 安全补丁级别
RQ3A.211001.001 android-11.0.0_r46 Android11 Pixel 3、Pixel 3 XL、Pixel 3a、Pixel 3a XL、Pixel 4、Pixel 4 XL、Pixel 4a、Pixel 4a (5G)、Pixel 5 2021-10-01
#!/bin/bash
echo  "==========start repo sync==="
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-6.0.1_r20
repo sync -j4 # -d --force-sync --no-clone-bundle
while [ $? = 1 ]; do
        echo “======sync failed, re-sync again======
        sleep 3
        repo sync -j4 -d --force-sync --no-clone-bundle
done
 
chmod a+x down.sh
./down.sh
#!/bin/bash
echo  "==========start repo sync==="
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-6.0.1_r20
repo sync -j4 # -d --force-sync --no-clone-bundle
while [ $? = 1 ]; do
        echo “======sync failed, re-sync again======
        sleep 3
        repo sync -j4 -d --force-sync --no-clone-bundle
done
 
chmod a+x down.sh
./down.sh
sudo apt update && sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3.7  openjdk-8-jdk rsync libssl-dev
sudo apt update && sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3.7  openjdk-8-jdk rsync libssl-dev
apt update \
    && apt install -y 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 \
    openjdk-8-jre-headless openjdk-8-jdk-headless python2.7 \
    libncurses5
    sed -i 's/TLSv1.1,//' /etc/java-8-openjdk/security/java.security \
    && sed -i 's/TLSv1,//' /etc/java-8-openjdk/security/java.security \
    && ln -s /usr/bin/python2.7 /usr/bin/python
apt update \
    && apt install -y 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 \
    openjdk-8-jre-headless openjdk-8-jdk-headless python2.7 \
    libncurses5
    sed -i 's/TLSv1.1,//' /etc/java-8-openjdk/security/java.security \
    && sed -i 's/TLSv1,//' /etc/java-8-openjdk/security/java.security \
    && ln -s /usr/bin/python2.7 /usr/bin/python
FROM ubuntu:18.04
ARG userid
ARG groupid
ARG username
RUN apt update &&  apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3.7  openjdk-8-jdk rsync libssl-dev
RUN groupadd -g $groupid $username \
 && useradd -m -u $userid -g $groupid $username \
 && echo $username >/root/username \
 && ln -s /usr/bin/python3.7 /usr/bin/python
ENV HOME=/home/$username
ENV USER=$username
ENTRYPOINT chroot --userspec=$(cat /root/username):$(cat /root/username) / /bin/bash -i
FROM ubuntu:18.04
ARG userid
ARG groupid
ARG username
RUN apt update &&  apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3.7  openjdk-8-jdk rsync libssl-dev
RUN groupadd -g $groupid $username \
 && useradd -m -u $userid -g $groupid $username \
 && echo $username >/root/username \
 && ln -s /usr/bin/python3.7 /usr/bin/python
ENV HOME=/home/$username
ENV USER=$username
ENTRYPOINT chroot --userspec=$(cat /root/username):$(cat /root/username) / /bin/bash -i
sudo docker build --build-arg userid=$(id -u) --build-arg groupid=$(id -g) --build-arg username=$(id -un) -t aospbuild:android11 .
sudo docker build --build-arg userid=$(id -u) --build-arg groupid=$(id -g) --build-arg username=$(id -un) -t aospbuild:android11 .
# 开机自启动
--restart always
# 授予管理员权限
--privileged
# 启动
docker run -it -v /mnt/android/android11:/android11:rw --privileged --restart always  --name aospbuild aospbuild:android11 /bin/bash
# 执行
chroot --userspec=$(cat /root/username):$(cat /root/username) / /bin/bash -i
# 开机自启动
--restart always
# 授予管理员权限
--privileged
# 启动
docker run -it -v /mnt/android/android11:/android11:rw --privileged --restart always  --name aospbuild aospbuild:android11 /bin/bash
# 执行
chroot --userspec=$(cat /root/username):$(cat /root/username) / /bin/bash -i
FROM ubuntu:14.04
ARG userid
ARG groupid
ARG username
RUN apt-get update && apt-get install -y git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip python openjdk-7-jdk rsync
RUN curl -o /usr/local/bin/repo https://storage.googleapis.com/git-repo-downloads/repo \
 && echo "d06f33115aea44e583c8669375b35aad397176a411de3461897444d247b6c220  /usr/local/bin/repo" | sha256sum --strict -c - \
 && chmod a+x /usr/local/bin/repo
RUN groupadd -g $groupid $username \
 && useradd -m -u $userid -g $groupid $username \
 && echo $username >/root/username \
 && echo "export USER="$username >>/home/$username/.gitconfig
COPY gitconfig /home/$username/.gitconfig
RUN chown $userid:$groupid /home/$username/.gitconfig
ENV HOME=/home/$username
ENV USER=$username
ENTRYPOINT chroot --userspec=$(cat /root/username):$(cat /root/username) / /bin/bash -i
FROM ubuntu:14.04
ARG userid
ARG groupid
ARG username

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-10-26 19:27 被iyue_t编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (4)
雪    币: 1519
活跃值: (3298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不说环境等于耍流氓 . 我使用的是 deepin 20.7.1 官方推荐在ubuntu 18.08 都行 基于debian的
2022-10-26 19:35
0
雪    币: 4437
活跃值: (6666)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
goods
2022-10-26 21:56
0
雪    币: 129
活跃值: (407)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4

注意: 目前完整的次级镜像总大小是893GB(不含tmp和缓存文件), 如果你想从清华源同步次级镜像, 请确保有1T+以上的磁盘空间, 因为从清华源同步900GB数据对它来说也是不小的负载, 需要重复同步很多次才能全部成功. 每次同步失败都会产生tmp文件和缓存文件非常占用磁盘空间.

完全同步成功后再对次级镜像执行git gc, 并rm tmp文件即可.

2022-10-26 23:54
1
雪    币: 1519
活跃值: (3298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
SevenSir 注意: 目前完整的次级镜像总大小是893GB(不含tmp和缓存文件), 如果你想从清华源同步次级镜像, 请确保有1T+以上的磁盘空间, 因为从清华源同步900GB数据对它来说也是不小的负载, 需要重复 ...
大佬 我都是 只下载 手机用的版本 其它去cs.Android去看.
2022-10-28 22:25
0
游客
登录 | 注册 方可回帖
返回
//