windows下下载AOSP源码记录

背景

我在家需要下载安卓源码,但我也没有买VPN,而且虽然是新买的笔记本,硬盘只有500G,所以没有办法直接下载一个98G的全量代码压缩包。
我个人也是一个windows使用者,在公司的时候有计算云的linux,但是在家并没有,个人使用linux多年,虽然基本操作是OK的,但是linux本身太庞大了,而且需要安装各种lib,我非常讨厌整这个环境

安装虚拟机

在win10下安装虚拟机有两种方式,一种就是使用虚拟机软件(例如virtualbox),另一种就是使用微软官方的WSL2。

  • WSL2
    我个人没有选择这种方式,所以就先描述下。没有选择他的原因是因为我以前一直都用的是virtualbox,对他会更有信心一点。也怕微软官方装个虚拟机把C盘都占满了等等各种乱七八糟的问题,毕竟我是来下载代码的,不是来折腾系统的。(不过最终还是折腾了好久。。)
    但是我也大概研究了下这种方式,也是有点优势的,一是微软官方的,可能性能会稍好点,二是它对磁盘的处理也会更好点(这个地方我在virtualbox里面踩坑了),具体怎么样等待别人分享吧。

  • virtualbox
    我以前一直用的这个,但是以前并没有在里面repo过,更没有在共享文件夹里面repo过,这次实在是碰到了太多的坑了。
    我一共尝试装了多种ubuntu,下面一个个说下:

    1. ubuntu 20 LTS
      安装过程不表,安装完之后有各种bug,我的笔记本屏幕是2.8K的,安装完我希望调整系统分辨率(原始分辨率是800*600),调整过后再重启后发现分辨率无法保存,变回原始分辨率,但是更严重的一个问题是,终端里面输入的字符更改有问题,即你输入了一串字符,然后当你要删掉某一个的时候,你会发现退格键并不能正常删除(重启前还可以),明明是退格但是感觉像是变成了空格,但实际上是删除了的
      我个人觉得是因为显卡驱动没有安装,本人使用的是AMD R7 4800H(核显),在virtualbox里面只能选择VMSVGA,启用3D加速,在系统里面安装显卡驱动也是各种错误,反正就是各种不顺利,估摸着当前ubuntu 20这个版本可能bug比较多,一怒之下就删了,重新下载了ubuntu 18 LTS和ubuntu 20 server两个版本再次重装。
    2. ubuntu 20 server
      我个人实际上是不需要桌面的,在工作中实际上都没有用ubuntu桌面,所以除了虚拟机里多开终端对我来说不知道咋整之外,都可以接受。但是也遇到了两个问题:
      一是分辨率仍然无法调整,只能是默认的是800*600,好像终端的向上滚轮也没法使?
      二是比较严重的,我即便安装了virtualbox的增强功能(可以使用共享文件夹),但仍然不可以使用双向粘贴板!!你能接受一大长串需要输入的内容一点点的手动输入吗,尤其是网址?在网上找了好多,但是都没能解决,这个方案也就被我搁置了。
    3. ubuntu 18 LTS
      这个版本的ubuntu实际上遇到了跟上面一样的bug,当然等会说到他的bug,上面几个方案同样也会遇到,只是上面我可能没找到方案。
      一是分辨率在修改后同样会在重启后丢失,但好歹他重启后默认的不是800*600分辨率,而是一个比较高的(25:9)的分辨率,初始观感还凑合,且不会出现20版本的退格显示不了的问题
      二是发现无法在共享文件夹里面repo init,会报symlink相关的错(error.GitError: filesystem must support symlinks)。这个在之前那两个方案中同样存在,解决方法是

1、关闭virtualbox
2、以管理员打开cmd
3、进入virtualbox安装目录
4、执行
VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1
YOURVMNAME :你虚拟机的名字
YOURSHAREFOLDERNAME :共享文件夹的名字,不是地址
5、以管理员权限运行virtualbox

但是实际上在repo init的最后还是会报错,例如

repo init GIT_DISCOVERY_ACROSS_FILESYSTEM not set
raise GitError('Cannot initialize work tree for ’ + self.name)

但是代码已经下载下来了,完成我的目标了,所以就没再管了

repo的安装和AOSP代码下载

为了下载AOSP源代码,所以需要下载repo,但是由于众所周知的原因,我们实际上没有连上谷歌,所以可以使用使用清华tuna的git-repo镜像。

  1. 根目录下创建bin文件夹

mkdir ~/bin

  1. 配置临时变量

PATH=~/bin:$PATH

  1. 下载repo

git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

  1. 将git-repo中的repo文件复制到 1 创建的bin目录中
  2. 修改权限

chmod a+x ~/bin/repo

  1. 在工作目录下手动创建.repo目录,将git-repo拷贝到.repo下,并改名为 repo
  2. 由于接下来的初始化可能会失败,所以需要将repo改为清华的tuna git-repo,具体见https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/
  3. 执行下面命令,等待代码下载完成(我只下载了部分目录,中间有raise GitError('Cannot initialize work tree for ’ + self.name)这样的报错,但是代码已经下载下来我觉得可以先不用管)

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-11.0.0_r17
repo sync -cd -j4 frameworks/base
repo sync -cd -j4 packages/services/Telephony

后记

上面吐槽了不少linux的问题,很多问题我是搞的焦头烂额,明明我就需要安装个linux,然后使用repo下载个代码,结果整的我在折腾各种系统问题,纯粹就是在浪费时间。我上面可能解决了一些问题,但是更多我上面写的问题还没有解决,因为本身也不影响我要干的事,就可以先忍忍,但是个人还是希望能得以解决的,如果有人看到而且知道解决方法,希望在评论中不吝赐教

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值