Android 是一个适用于移动设备的开源操作系统以及由 Google 主导的相关开源项目。此网站和 Android 开源项目 (AOSP) 代码库可为您提供所需信息和源代码,供您创建定制的 Android 操作系统版本,将设备和配件移植到 Android 平台,同时确保您的设备符合兼容性要求,从而让 Android 生态系统维持良好稳健的运行环境,以便更好地服务于数百万用户。

作为一个开源项目,Android 的目标是避免出现任何集中瓶颈(即没有任何行业参与者可一手限制或控制其他任何参与者的创新)。为此,Android 被打造成了一个适用于消费类产品的完整高品质操作系统,并配有可定制源代码,该代码可移植到几乎所有设备以及所有用户均可使用的公开文档中(英文网址:source.android.com;简体中文网址:source.android.google.cn)。

在公开文档中有关于源码的下载方法: https://source.android.google.cn/setup/downloading

敲黑板内容:

你可以按照公开文档的下载方法下载源码,但是环境需要在linux下,那么windows如何下载呢,这里提供两种方案,中心思想是一样的。

一、模拟Linux环境:

1.下载 Cygwin安装windows下的Linux模拟环境,用谷歌的Repo,repo 是一款工具。,然后就是一路的下一步(注意:如果第一次安装,你需要选install from internet,然后就是选安装位置,还有临时文件的位置和连接网络的设置,这些都默认就可以.关键的一步是选择要安装的库和程序,以下这几个是要安装的:

Net -> curl

Devel -> git,git-completion,git-gui,gitk

Libs -> libreadline6,libiconv2

Editors -> vim

Python -> python

如果不好找,你可以在上面的Search上搜索.

2.下载Repo

启动Cygwin,然后cd /bin,切到bin目录执行

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

下载repo到bin目录.然后执行

chmod a+x repo赋予它可执行的权限.

初始化仓库:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

如果需要某个特定的 Android 版本:

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1

同步源码树(以后只需执行这条命令来同步):

repo sync

二、自制脚本下载:

下载git,安装 官方下载:https://git-scm.com/downloads/,
下载python,安装 官方网址:http://www.python.org
打开Git Bash,执行命令,我是放在c盘的,路径可自定义
git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest.git
输入命令,切换到manifest目录
cd manifest
Git tag 列出android各个分支版本
下载android-cts-4.0_r1系统源码,输入下面命令,如果要下载其他版本源码,checkout git tag列出的版本号即可
git checkout android-cts-4.0_r1
checkout之后,manifest/default.xml文件中记录的就是android-cts-4.0_r1系统各个模块的路径,
下面就轮到python出场了,实现源码的批量下载
执行此脚本的前提是已经执行了git checkout,选择好了要下载的Android源码版本,按照以下源码请自行修改脚本。

import xml.dom.minidom
import os
from subprocess import call  #downloaded source path
rootdir = "你的下载源码路径"  #git program path
git = "你的git路径/git.exe"
dom = xml.dom.minidom.parse("你的defalut路径/manifest/default.xml")
root = dom.documentElement  prefix = git + " clone https://aosp.tuna.tsinghua.edu.cn/"
suffix = ".git"  if not os.path.exists(rootdir):  os.mkdir(rootdir)  for node in root.getElementsByTagName("project"):  os.chdir(rootdir)  d = node.getAttribute("path")  last = d.rfind("/")  if last != -1:  d = rootdir + "/" + d[:last]  if not os.path.exists(d):  os.makedirs(d)  os.chdir(d)  cmd = prefix + node.getAttribute("name") + suffix  call(cmd)  

执行这个脚本之后将会自动下载源码

一、如何下载安卓系统源码相关推荐

  1. 安卓系统源码编译系列(一)——下载安卓系统源码教程

    最近需要编译安卓系统,咨询了一个编译过安卓系统的朋友,说是下载源码就得下载两天,于是做好了长期抗战的准备,开始了下载安卓源码的旅程.在刚开始下载时,可以参照的内容只有官方教程,于是跟着官方教程一步一步 ...

  2. 安卓系统源码编译系列(1)——下载安卓系统源码教程

    安卓系统源码编译系列(一)--下载安卓系统源码教程 最近需要编译安卓系统,咨询了一个编译过安卓系统的朋友,说是下载源码就得下载两天,于是做好了长期抗战的准备,开始了下载安卓源码的旅程.在刚开始下载时, ...

  3. 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程

    原文                   http://blog.csdn.net/zhaoxy_thu/article/details/18883015             本文主要对从安卓系统 ...

  4. 从零开始编译安卓系统源码(生成.img文件)以及安卓系统内核

    最近开始接触安卓设备,了解到安卓系统开机界面以及定制桌面需要修改系统源码,这种情况下就需要重新编译系统源码得到.img镜像文件,本篇文章记录从零开始编译安卓系统源码以及安卓系统内核的一种方式. 很感谢 ...

  5. 使用代理下载android系统源码和SDK

    ** 使用代理下载android系统源码和SDK ** 谷歌被墙后,如何下载android源码和sdk?使用代理.步骤如下: 寻找可用代理 先在这里找一个可用的代理服务器:http://www.xic ...

  6. PHP手机版源码下载分期系统源码Thinkphp内核开发集成支付,短信功能,征信对接

    PHP手机版源码下载分期系统源码Thinkphp内核开发集成支付,短信功能,征信对接下载链接:https://pan.baidu.com/s/17THZSi8MNV4n7oUZoYRyRg 提取码:8 ...

  7. 编译安卓系统源码jack-server问题入坑,全网最全解决方法

    编译安卓系统源码jack-server入坑,全网最全解决方法 1.权限问题 2.端口占用 3.删除 TLSv1, TLSv1.1(我的最后解决办法) 1.权限问题 运行失败时进入~/.jack-ser ...

  8. 2023最新仿蓝奏云合集下载页面系统源码 带后台版本

    2023最新仿蓝奏云合集下载页面系统源码 带后台版本 新版仿蓝奏云合集下载页源码续上次发的仿蓝奏云合集下载单页源码 修复了搜索功能 修复无法下载文件和下载文件为空 更新功能如下 1.增加后台 2.可在 ...

  9. 【安卓系统源码学习之permission】 系统源代码AndroidManifest.xml分析之permission解读

    上一节,我们讲到了怎么去查找安卓源码中AndroidManifest.xml文件,打开这个文件,你会发现里面有很多<permission ... />的标签,如下图所示: 这个是用来做什么 ...

  10. 2023最新仿蓝奏云合集下载页面系统源码+有PHP后台版的

    正文: 修复了搜索功能 修复无法下载文件和下载文件为空 更新功能如下 1.增加后台 2.可在后台上传文件及删除文件等信息修改 3.目前仅支持apk,zip,exe,rat,txt文件 4.增加下载次数 ...

最新文章

  1. reactor与proactor模式
  2. vim插件的安装方式 -- vim注释插件和doxygen函数注释生成插件-ctrlp插件-tabular等号对齐 插件...
  3. 近期重构技能的一些心得
  4. androidx使用FileProvider适配安卓7
  5. linux下批量修改文件名的方法
  6. bzoj3438: 小M的作物
  7. nvidia的jetson系列的方案_NVIDIA Jetson Xavier NX开发者套件主要应用于自主机器边缘计算产品系列...
  8. 简单打印-双排标签102*30模板设计
  9. 数据库基本语句和关键字详解
  10. 十进制 二进制 十六进制 八进制
  11. 计算机pdf转换word,PDF怎么转换成Word?解决PDF转Word的小妙招
  12. 火车采集器采集多页内容的抓取方法
  13. 基础数据类型补充 set集合 深浅拷贝
  14. HTML5期末大作业:在线电影网站设计——电影速递网(12页面)含登录注册HTML+CSS+JavaScript
  15. 3D美术人员Technical Artist(TA技术美术)的学习之旅(2)
  16. android usb otg,android usb otg需要什么权限
  17. python求打几场比赛-用python实行羽毛球比赛规则。
  18. 传说中的b站mac客户端(支持M1芯片、适配Big Sur)-bilibili mac客户端
  19. 并发编程:我对Java并发编程的总结和思考
  20. Shell编程学习(四)read读取、函数、文件归档、定时任务

热门文章

  1. Python数学建模系列(十):时间序列
  2. c语言实现通讯录(详解)
  3. 计算机公共基础课网络教学平台,“计算机基础”教学中网络教学平台应用研究.doc...
  4. python-pygame作品之黑客帝国代码雨
  5. Java 输入输出流实验
  6. Python实现 ---【简易】12306爬虫
  7. linux下可执行文件的默认扩展名为,Linux下可执行文件的默认扩展名是什么
  8. 我的世界启动器java_我的世界最新启动器 无需安装JAVA
  9. openCV 中值滤波算法解析
  10. 线性同余法的伪随机数