Android source 使用谷歌&x27;s回购工具
简单问题:如何在linux mint上使用repo工具下载android操作系统源代码8.0.0版 详细说明: 我想下载android源代码。编辑部分代码,然后将其安装到设备上。我安装了linux操作系统,并下载/初始化了repo。然而,就我个人而言,我无法理解如何使用回购 我使用操作系统标签:OPR4.170623.009。这是安卓-8.0.0R16奥利奥 这是以下命令:Android source 使用谷歌&x27;s回购工具,android-source,repo,Android Source,Repo,简单问题:如何在linux mint上使用repo工具下载android操作系统源代码8.0.0版 详细说明: 我想下载android源代码。编辑部分代码,然后将其安装到设备上。我安装了linux操作系统,并下载/初始化了repo。然而,就我个人而言,我无法理解如何使用回购 我使用操作系统标签:OPR4.170623.009。这是安卓-8.0.0R16奥利奥 这是以下命令: repo sync [OPR4.170623.009] 我得到这个结果 ... A new version of rep
repo sync [OPR4.170623.009]
我得到这个结果
... A new version of repo (2.12) is available.
... You should upgrade soon:
cp /home/k/.repo/repo/repo /home/k/bin/repo
error: project [OPR4.170623.009] not found
我甚至试过
repo sync [<OPR4.170623.009>]
这是非常奇怪的,因为“下载源代码”页面并没有真正说明如何下载源代码。(). 这让我觉得我应该使用sync和“源代码标签”。但是,它没有说明如何将这两者结合起来:
在这里:
它显示了一些示例,但看起来与它们的标签完全不同。您要下载的版本必须为
repo init
指定,而不是为repo sync
指定。此外,版本是使用标记指定的,而不是使用构建ID(列表中的第二列)
因此,您必须采取以下步骤:
- 使用所需的build标记初始化repo(例如
):android-8.0.0r16
- 同步回购协议:
传递给repo sync --jobs=32 --current-branch --no-tags --quiet
的附加标志不是必需的,但可能会有帮助:标志repo sync
将尝试并行下载32次(根据您的网络带宽进行调整)。标志--jobs=32
将仅下载您在--当前分支
期间指定的分支。标志repo init
将禁用标签数据的下载。使用标志--no tags
时,仅显示整体下载进度--quiet
一些一般注意事项:您表示要将图像闪存到设备。请注意,您的设备可能需要在映像中包含特定于设备的驱动程序。这些驱动程序通常不是AOSP的一部分。此外,您的设备可能有一个锁定的引导加载程序,不允许闪烁自定义图像。我无法提供更多详细信息,因为我不知道您的目标设备。不幸的是,我不熟悉三星设备,因此这将是一个单独的问题,其他人可以回答。三星可能会提供一种下载这些驱动程序的方法,但也完全有可能它们是私有的。理论上,是的,只可能更换单个组件(对于某些组件,这将比其他组件更容易)。这假设您有一个根设备,允许这种写访问(我的说明中的第二点)。一般来说,设备供应商有兴趣不向您提供此类写访问权限,因为这将允许您修改和转售他们的设备,这可能会损害他们的声誉。要以“官方”方式获得根设备,您必须是可以与设备供应商协商某些合同的企业的一部分,这通常涉及到转售大量设备的能力。以“非官方”的方式获取根设备通常涉及一些可以绕过设备安全机制的工具。你可能会找到一些关于如何根设备的指南,但我不能给你任何建议(因为我不熟悉三星设备,也因为我无法判断这些工具的可靠性)。关于二进制文件的提取:理论上,是的,驱动程序存储在内存中,你可以提取它们。虽然这需要知道去哪里看,但我不能帮你,因为我不知道三星在哪里存储驱动程序的细节。分区布局可能有一个引导分区(保存内核,可能包含三星特定的驱动程序)和一个系统分区(保存大部分编译的AOSP代码),一个保存供应商特定文件的供应商分区,可能包含其他驱动程序,一个用户数据分区,可能还有其他分区。谷歌正在敦促设备供应商尽量减少他们对系统分区(称为Project Treble)的定制量。如果三星完全遵循这一指导原则,那么系统分区将不包含任何三星驱动程序,您只需闪存您的自定义系统分区,在这种情况下,您就不必麻烦使用特定于设备的驱动程序。我的猜测是,三星没有完全遵循这一准则,在系统分区上有一些定制,但我不知道扩展到什么程度。在这种情况下,刷新自己的系统分区可能有效,也可能无效。
repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]
repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r16
repo sync --jobs=32 --current-branch --no-tags --quiet