真·Windows下载Android源码

这是真正的教大家怎样在Windows下成功的下载完整的Android源码,建议大家完整的看完一次再操作,因为最后那里会有一些注意事项,这样可以减少你走弯路

一直以来,要想在Windows里面下载Android的源码,都是一件非常糟心的事情,吃力不讨好。能成功的方法大概有下面的几种

  • 安装cygwin,这样子来获取到一个Linux的环境,这样子来下载
  • 自己修改repo,使其能在Windows下能运行好,网上也有人修改过
  • 自己写一个脚本,然后通过git一个一个的项目clone下来
  • 装个虚拟机,然后虚拟面里面装个Linux

上面几种方法对应的缺点是

  1. cygwin的安装非常的麻烦,不是才司机,很难知道要安装那些包,全装的话,占用空间非常的大,几个G少不了
  2. 非常的不稳定,会出乱七八糟的问题
  3. 非常的烦琐,而且还要写上对应的更新脚本,容易clone少一些项目
  4. 非常的占用资源

所以除了常年使用Linux开发的大佬,很少会专门装个Linux系统来下载源码,就算装了系统来下载,由于大量的熟悉的工具在Windows,使用起源码来也会事半功倍。Mac大佬也很少会用下载,因为完整的源码起码100G到200G,Mac的空间小,占用那么多,受不了。

但现在,一个好方法来了,那就是在Window10上面使用WSL,适用于Linux的Windows子系统。可以把它理解成运行在Windows上的一个Linux内核。有点像cygwin,但这个是微软自己支持的,亲儿子,运行起来的内存占用这些,肯定有保障,兼容性也是没问题的。

但是,它是需要在Windows10上运行的,所以最好把系统升级到最新。官方文档

那么就进入正题,首先安装wsl,按win键,输入powershell,然后右键,以管理员身份运行

01.png

然后输入Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

02.png

然后按提示操作,会有个确认的环节,输入y就好。然后就会重启了

重启完成之后,想知道是否安装成功,那就可以在命令行里面输入wsl,出现下面的提示就是成功了

03.png

成功安装wsl之后呢,我们就需要安装一个Linux的子系统了,这个更简单,只需要去Microsoft Store那里安装就好了,直接搜索Ubuntu(也有其他版本的Linux,自己按需搜索),然后选择你想安装的版本,然后安装

04.png

我这里安装的是18的LTS

注意

有些人的Windows版本是没有Microsoft Store的,例如企业版,所以下面的教程就是教那些人怎样安装Microsoft Store,有的人,可以跳过

打开网址 https://store.rg-adguard.net/

PackageFamilyName方式搜索Microsoft.WindowsStore_8wekyb3d8bbwe,根据系统选择对应的包(每类种选择一个)都要下载,自己看清楚对应版本(我的是64位的系统,所以就下载64的)!不清楚的可以看下面的图。

05.png

下载到本地,放到同一个文件夹里面

06.png

然后以管理员的方式,打开PowerShell,不会的,看前面,然后输入命令

Add-AppxPackage *
07.png

等安装完成之后,就可以看到Microsoft Store了。这样就可以安装Ubuntu了

回到我们的主线

安装好Ubuntu之后呢,我们就需要启动它,按Win键,然后找到它,就可以启动了

08.png

第一次启动会慢一点,耐心等候,下次就秒开了,还有就是第一次需要设置用户名和密码,用户名是要小写的,不然会提示不符合命名规范

09.png

就这样,你的环境就安装好了,但我推荐再安装一个Windows Terminal,可以支持分屏等一系列操作的终端,当然不装也可以,但用过的就知道有多香了。同样是在Microsoft Store里面安装就好了

10.png

下面就可以正式的进入Android源码下载的步骤了

首先,我们需要给我们的Ubuntu系统更换源,如果不更换,安装软件就会慢,甚至不成功。我们先去到我们刚刚启动的Ubuntu

然后去到指定目录 cd /etc/apt

然后备份一下原来的源文件 sudo cp sources.list sources.list.bak

11.png

记住,一定要需要用sudo的,密码就是刚刚初始化Ubuntu时,你输入的密码

然后,我们就打开源文件,进行编辑 sudo vim sources.list

12.png

这时就进入了vim的编辑模式了,如果不会vim的同学,建议去简单的学一下,想玩一下Linux,这个是必备基础

注意,这时,我们输入 d 然后,再输入G 一定要区分大小写,不然就没办法达到效果了。想知道自己是不是进行了有效的输入,盯着右下角看,而不是光标

13.png

然后,我们就会把原来里面的内容都删掉了

然后,我们把下面的文字复制一下

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

然后回到我们的Ubuntu那里,然后按 p 然后再输入 :wq 然后Enter就可以了

14.png

更换了源之后,我们还需要在Ununtu的命令行里面输入 sudo apt-get update 更新一下源信息。然后就可以安装python了,记住,一定是要安装python2.7

sudo apt-get install python2.7

按提示操作,确认好之后,等一下,安装好之后,关键的步骤来了,我们需要把python命令软链接到2.7

cd /usr/bin
sudo ln -s python2.7 python

然后正常情况下,输入python命令,会显示下面的,就正常了

15.png

最后,就可以按照官方文档来进行下载源码了,我把必要的步骤说一下。有个前提,你需要把自己的Git安装好,配置了,如果没用过,自己去学习一下

第一步, 新建一个文件夹,用来保存源码的,我这里就新建了Android的目录,然后进入到这个目录下面,输入下面的命令

curl https://storage.googleapis.com/git-repo-downloads/repo > ./repo
chmod a+x ./repo
./repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r35
./repo sync

这样就会开始下载源码了,这里有个需要注意的,上面的android-11.0.0_r35是你自己需要下载的分支的名字,如果想知道有什么分支的话,可以按下面的来执行

curl https://storage.googleapis.com/git-repo-downloads/repo > ./repo
chmod a+x ./repo
./repo init -u https://android.googlesource.com/platform/manifest
cd .repo/manifest
git branch -a
./repo init -u https://android.googlesource.com/platform/manifest -b 自己选好的分支
./repo sync

最后,重要提醒,Android的源码非常的大,会占到100到200G,所以一定要有足够的空间,不然到时下载到一半就,瞎折腾了。我的G盘只有Android源码,占用了140G左右

16.png

异常情况

如果报错了,多运行几次 ./repo sync 命令

路径问题,例如我们的E盘,是对应Ubuntu的 /mnt/e/目录,G盘就是 /mnt/g/

error: .repo/repo/: contains uncommitted changes 错误

去到报错的目录,然后就执行命令

git stash
git clean -f -d

this operation must be run in a work tree error: Cannot checkout platform/hardware/qcom/keymaster

试多几次,如果还不行,那就去.repo/project-objects和projects里面删掉对应的项目

网络问题,对于不能翻墙,或者经常下载失败的伙伴,可以试着切换源,切换方式,打开.repo/manifests.git/config文件,然后把里面的

url = https://android.googlesource.com/platform/manifest

更换为

url = https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest

好了,写到这里,就基本已经可以下载好完整的Android源码了,放张图给大家看看

17.png

第一个框的就是./repo init后生成的,中间的框是源码,如果我们要备份,或者发给别人,就可以把那个框里面的压缩就好了,千万不要把.repo目录也弄进去,里面有很多数据的,超级大的,可以看到我自己压缩后的Android.7z就只有18G而已。强烈建议大家都备份一下,免得以后编译的时候编坏了文件

好了,上面就是完整的教程了,至于编译问题,我这里就不编译了,因为我暂时还不需要编译。但有wsl这个环境,相信编译也不会有什么问题。如果到了我需要编译的时候,有很多坑的话,我就再写一编文章来教大家怎样编译。

最后,谢谢支持!

你可能感兴趣的:(真·Windows下载Android源码)