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

简介: Windows下成功安装Repo和下载Android源码方法总结

repo是什么?


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


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


Linux下安装Repo


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


$ 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版本:


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开始正式下载源代码。


遇到的问题:


Could not resolve host: raw.githubusercontent.com


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


一定能够成功的办法


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


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 源码。


清华大学开源软件镜像站


https://mirrors.tuna.tsinghua.edu.cn/


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那个代码仓库。接下来:


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


<remote name="github"
    fetch="https://github.com.cnpmjs.org/"
    review="https://github.com.cnpmjs.org/" />


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


<remote  name="aosp"
       fetch=".."
       review="https://android-review.googlesource.com/" />


改为下面的即可:


<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的国内镜像源:


https://github.com.cnpmjs.org/


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


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


<remote name="github"
          fetch="https://github.com.cnpmjs.org/"
          review="https://github.com.cnpmjs.org/" />


参考












相关文章
|
4月前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
531 4
|
2天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
21 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
2天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
24 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
存储 Cloud Native Java
Windows下Minio的安装以及基本使用
MinIO 是一个开源的云原生分布式对象存储系统,兼容亚马逊S3接口,适合存储大容量非结构化数据。本文介绍Windows下MinIO的安装与基本使用:通过以上步骤,您可以在Windows环境中成功安装并使用MinIO。
145 17
|
2月前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
2月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
235 9
|
2月前
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
127 2
|
3月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
217 4
|
3月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
137 4

热门文章

最新文章

  • 1
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 3
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 4
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 5
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 6
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 7
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 8
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 9
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 10
    网安快速入门之Windows命令