前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows下成功安装Repo和下载Android源码方法总结LineageOS 14.1下载

Windows下成功安装Repo和下载Android源码方法总结LineageOS 14.1下载

作者头像
杨永贞
发布2022-01-07 15:38:31
8K1
发布2022-01-07 15:38:31
举报

repo是什么?

官方的定义:Repo是谷歌用python脚本写的调用git的一个脚本,可以实现管理多个git库。

Android的源代码使用Repo 命令行工具来管理多个git仓库,大概有百多个。要想克隆和管理百多个 Git 仓库,不是一件简单的事情。Repo 命令行工具对 Git 部分命令封装,将百多个 Git 库有效的进行组织。

Linux下安装Repo

linux下的Repo安装,稍简单些。

代码语言:javascript
复制
$ curl http://android.git.kernel.org/repo >~/bin/repo

$ chmod a+x ~/bin/repo

$ export PATH=$PATH:~/bin

Windows下Repo安装

repo原本是谷歌搞的一个方便下载AOSP的工具基于git,但由于种种原因不能直接在Windows上使用。但好在有windows版本以用。Repo的Windows版本:

代码语言:javascript
复制
https://github.com/esrlabs/git-repo

链接地址:GitHub - esrlabs/git-repo: repo - The multiple repository tool (also works on MS Windows!)

如果按照网上搜到的方法,安装会遇到不少问题。这里介绍下一个一定能成功的方法。

网上的方法:

一、环境准备:

1.安装Git for Windows,360软件管家里可以直接搜到64位的git for windows。

2.安装Python 2.7,360软件管家里可以直接搜到Python 2.7。

3.配置系统环境变量,Git 和python加入到环境变量。

二、安装Repo:

1.在任意处打开 Git Bash 命令行,注意必须是Git的git bash命令行。

mkdir ~/bin curl https://raw.githubusercontent.com/esrlabs/git-repo/stable/repo > ~/bin/repo curl https://raw.githubusercontent.com/esrlabs/git-repo/stable/repo.cmd > ~/bin/repo.cmd chmod a+rx ~/bin/repo

2.下载Android的AOSP源代码,新建aosp目录,cd aosp进入目录。

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r25 --repo-url=https://github.com/esrlabs/git-repo.git

3.上一步repo init执行成功后,执行repo sync开始正式下载源代码。

遇到的问题:

代码语言:javascript
复制
 Could not resolve host: raw.githubusercontent.com

这个地址可能被墙了,即使手动改hosts文件也不一定管用。

一定能够成功的办法

1.打开github上的git-repo仓库,把仓库代码clone或者zip包下载下来。

代码语言:javascript
复制
https://github.com/esrlabs/git-repo

把repo和repo.cmd复制一份放置在C:\Users\Administrator\bin

注意环境不同可能不一定是这个路径。这个位置是前几步mkdir ~/bin创建的目录。可以在git bash下进入到bin目录通过pwd命令查看路径。

2.在需要下载android源码的aosp目录下,新建个.repo文件夹。在.repo文件夹下再建个repo文件夹。把下载的git-repo仓库内的源码放在repo文件夹下。

或者省略这步,直接把下载的 git-repo仓库放到git bash的~/bin下应该也可以。

3.下载Android 源码。

清华大学开源软件镜像站

代码语言:javascript
复制
https://mirrors.tuna.tsinghua.edu.cn/
代码语言:javascript
复制
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r25

最后, repo sync命令,即开始最终的代码下载。

LineageOS 14.1下载

Lineage OS 系统介绍

大伙还记得 CyanogenMod 吗?给安卓手机刷过机的用户基本都知道 CyanogenMod 的ROM,其实国内很多第三方的ROM都是基于 CyanogenMod 的ROM修改优化的,最近Cyanogen 团队重新以Lineage OS的新项目来出发,继续为众多安卓手机开发完备独居特色的操作系统。

该系统ROM相当的纯净,也就几百兆大小,运行自然也流畅,可以拿一些老旧手机刷机来练练手。对LineageOS刷机感兴趣的可关注论坛,有详细的刷机教程:LineageOS中文论坛 - Powered by Discuz!

LineageOS 14.1基于android7.1。

下载过程:

新建文件夹lineageOS,在lineageOS文件夹内新建.repo文件夹,在.repo文件夹内,拷贝进去repo那个代码仓库。接下来:

代码语言:javascript
复制
repo init -u git://github.com/lineageos/android.git -b cm-14.1
repo sync -c

即可下载。为了加快下载速度,可把 .repo里面的manifests文件夹修改里面的default.xml文件,修改如下,使用国内镜像https://github.com.cnpmjs.org/替换github.com

代码语言:javascript
复制
<remote name="github"
    fetch="https://github.com.cnpmjs.org/"
 
    review="https://github.com.cnpmjs.org/" />

https://android.googlesource.com 镜像使用如下替换:

代码语言:javascript
复制
<remote  name="aosp"
       fetch=".."
       review="https://android-review.googlesource.com/" />

改为下面的即可:

代码语言:javascript
复制
<remote  name="aosp"
       fetch="git://aosp.tuna.tsinghua.edu.cn/android/"
       review="https://android-review.googlesource.com/"
       revision="refs/tags/android-7.1.2_r36" />

repo相关知识介绍

.repo/manifests是个被git管理的仓库,这里放的是所有的manifest文件(*.xml)。

因为被git管理,固然有分支,-b可以切换到你想要的分支然后再下载相关的xml文件,当然具体下载那个xml还要看-m参数了,所以如果你仅仅指定-b而没有-m的话,就是下载-b指定分支下的default.xml文件。

如果不指定-b参数,那么会默认使用master分支。

repo sync [project-list]

下载最新本地工作文件,更新成功,这本地文件和repository 中的代码是一样的。 可以指定需要更新的project , 如果不指定任何参数,会同步整个所有的项目。

如果是第一次运行 repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。

如果不是第一次运行 repo sync , 则相当于 git remote update ; git rebase origin/branch . repo sync 会更新 .repo 下面的文件。

如果在merge 的过程中出现冲突, 这需要手动运行 git rebase --continue

repo默认会同步git库的所有远程分支的代码,但实际开发过程中,用到的分支是有限的。使用sync的-c参数,可以只下载manifest中设定的分支,这会节省代码下载时间以及本地的磁盘空间。

在repo init的时候,会从远程下载manifests和repo这两个git库。默认情况下这两个git库的地址都是写死在repo这个python脚本里面的。

对于AOSP而言,这两个git库的地址显然是google提供的。 但由于google访问受限的缘故,会导致init时,无法下载manifests和repo。这时候,可以使用init的-u和–repo-url参数,自定义这两个库的地址,辅以–no-repo-verify来绕过代码检查。最后,想要快速下载android的源代码的话,可以试下这个操作。

github的国内访问太慢了,使用国内镜像源吧。记住这个地址github的国内镜像源:

代码语言:javascript
复制
https://github.com.cnpmjs.org/

在本地得到.repo文件夹,进去会看到manifests文件夹,修改里面的default.xml文件 。

把里面的fetch="https://github.com/",review="https://github.com/"替换为:"https://github.com.cnpmjs.org/"

代码语言:javascript
复制
<remote name="github"
 
          fetch="https://github.com.cnpmjs.org/"
 
          review="https://github.com.cnpmjs.org/" />

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/10/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • repo是什么?
  • Linux下安装Repo
  • Windows下Repo安装
  • 一定能够成功的办法
  • LineageOS 14.1下载
    • repo相关知识介绍
      • 参考
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档