【Android】系统源码下载及编译

这篇具有很好参考价值的文章主要介绍了【Android】系统源码下载及编译。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

源码及编译

步骤 1:创建一个空目录来存放源码:

mkdir aosp
cd aosp

步骤 2:获取最新版本的 repo 并签出 android-8.1.0_r1 分支:

repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1

其中,android-8.1.0_r1 代表源码标记,代表我们将要获取 Android 8.1 的源码,如需查看其他版本的源码标记,可参阅 源代码标记和 build。

步骤 3:将 Android 源码从默认清单中指定的代码库下载到本地工作目录:

repo sync

步骤 4:创建本地分支并关联 repo 上的所有仓库:

repo start ycx-dev --all	

步骤 5:使用 envsetup.sh 脚本初始化编译环境:

source ./build/envsetup.sh

步骤 6:选择编译目标:

lunch aosp_arm64-eng

编译目标的格式说明:编译目标的格式是 BUILD-BUILDTYPE ,如 aosp_arm64-eng 这个目标,它的 BUILD 是 aosp_arm64,BUILDTYPE 是 eng 。

BUILD 指的是特定功能的组合的特定名称,即表示编译出的镜像可以运行在什么环境,例如 aosp_arm64-eng 中的 aosp(Android Open Source Project) 代表 Android 开源项目,arm 表示系统是运行在 arm 架构的处理器上的,arm64 则是指 64 位 arm 架构处理器

想查看 Android 设备的 cpu 架构,可以执行命令:adb shell getprop ro.product.cpu.abi

BUILDTYPE 指的是编译类型,通常有三种:

  • user:表示编译出的系统镜像版本可以用来正式发布到市场,这个版本是不能 root 的
  • userdebug:在 user 版本的基础上开放了 root 权限和 debug 权限
  • eng:表示开发工程师版本,拥有 root 权限,此外还附带了许多 debug 工具

如果我们在终端输入 lunch 命令,将会列出所有的编译目标:

安卓源码,Android基础知识,android,adb

步骤 7:开始编译(设置8个线程同时编译):

m -j8

参与编译的线程并不是越多越好,通常是根据你机器 cup 的核心来确定,公式为:core * 2,即当前 cpu 的核心的 2 倍

我们可以执行 cat /proc/cpuinfo| grep "cpu cores"| uniq 命令查看电脑 cpu 的核心数。

如果编译过程一切顺利,我们会在终端看到如下画面,表示编译成功!

安卓源码,Android基础知识,android,adb

步骤 8:如果我们 lunch 选中的编译目标是 1-6, 那么我们可以直接执行如下命令运行虚拟机看效果了:

emulator

稍等片刻,我们就可以在虚拟机上操作我们刚刚编译成功系统固件了。

如果我们 lunch 选中的编译目标是非 1-6, 那么我们可以编译的固件运行在真机上,具体步骤如下。

步骤 9:进入 fastboot 模式

adb reboot bootloader

步骤 10:解锁引导加载程序

fastboot flashing unlock

步骤 11:刷写设备

fastboot flashall -w

-w 选项会擦除设备上的 /data 分区;该选项在第一次刷写特定设备时可以加上,其他情况下不加也行。

刷写顺利的话,终端打印如下画面,则说明刷机成功了,此时机器会自动重启,稍等机器自动重启即可。

安卓源码,Android基础知识,android,adb

如果不想刷写所有分区,可以单独刷写某个指定分区,具体的命令为:

fastboot flash <分区名> <镜像文件名.img>

其中,<分区名> 指的是要刷写到哪个分区,比如 system、userdata 等;<镜像文件名.img> 指的是要刷写的 img 文件名称。

例如,如果想单独刷写 system.img,则可以输入以下命令:

fastboot flash system system.img

刷写完成后,不能直接简单的重启设备。需要执行以下命令来重新启动设备:

fastboot reboot

该命令会使设备从 fastboot 模式退出,并自动重启到正常的 Android 系统中。

编译问题

错误 1:flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data

安卓源码,Android基础知识,android,adb

解决方法:在终端输入命令:export LC_ALL=C,然后重新编译即可。

错误 2:xmllint: command not found

解决方法:在终端输入命令:sudo apt-get install libxml2-utils,然后重新编译即可。

编译单模块并运行

例如,我们修改了 SystemUI 模块的代码,需要编译到机器上运行看看效果,那么可以这样,

步骤 1:在当前源码目录下执行编译命令:

make SystemUI

稍等片刻,就可以看见编译成功了:

安卓源码,Android基础知识,android,adb

步骤 2:获得系统写入权限:

adb root && adb remount

步骤 3:接下来把编译产物 push 到设备上即可:

adb push out/target/product/xxx/product/priv-app/SystemUI /system/product/priv-app/

步骤 4:重启设备上层:

adb shell stop && adb shell start

重启完毕后即可看到修改后的效果了。文章来源地址https://www.toymoban.com/news/detail-644839.html

到了这里,关于【Android】系统源码下载及编译的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android AOSP源码编译——AOSP下载(一)

    一、电脑配置 Ubuntu16.04 + 16G,硬盘的大小最好大于300G (我这边是找了个win电脑装了双系统 没有使用虚拟机的方式) 二、基础环境配置 1、安装git 配置git email和name 2、安装依赖工具(需要确认的就一直y就好) 3、安装python 执行 python --version 可以看到ubuntu自带的python版本是Python 2.

    2024年02月13日
    浏览(46)
  • ubuntu编译 linphone sdk android源码下载

    2024年02月07日
    浏览(41)
  • Android Framework | AOSP源码下载及编译指南(基于Android13)

    AOSP(Android Open Source Project)是Android操作系统的开源项目,通过下载和编译AOSP源码,您可以获得原始的Android系统,并进行定制和开发。本教程将向您介绍如何下载AOSP源码并进行编译的步骤。 如何只是浏览查看AOSP源码,则没必要下载源码,可以使用google提供的Code Search工具进

    2024年01月16日
    浏览(50)
  • Android12 源码下载、编译、刷机、单编调试Framework

    深入学习Android系统框架开发前,首先要搭建Android工程的开发环境(建房子前先搞地基),详细的配置要求和操作步骤见官网说明 Establishing a build environment,本文也汇总了Android 12工程源码的下载、编译和刷机的实操过程。 在开始代码下载之前,先强调下源码编译对硬件/软件

    2024年02月03日
    浏览(51)
  • Rockchip平台rk3588源码下载编译(基于Android13)

    下载地址 服务器镜像下载 需要向RK申请SDK使用权限。 由于AOSP使用的repo管理源码仓库,所以为了方便开发者获取repo工具,RK也提供了repo工具的下载 本文介绍了如何使用Markdown撰写一篇关于搭建自己的repo代码服务器的文章。以下是详细的步骤和指导。 环境准备 在开始之前,

    2024年02月03日
    浏览(62)
  • 0.【AOSP+Pixel 5】Android13 开发环境搭建及源码下载、编译和刷机

    本人——入行Android没多久的萌新一枚。这个系列文章主要是我客制化Android系统的一些记录。以下是我的开发环境的信息: Android 版本:13 Android 设备:Pixel 5(欧版) 操作系统:Ubuntu 20.04.5 LTS(64位) 先更新一下软件源和软件 Ubuntu 20.04 LTS已经移除Python2,默认安装python3,但是

    2024年02月14日
    浏览(48)
  • 国内镜像:极速下载编译WebRTC源码(For Android/Linux/IOS)(二十四)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 优质专栏: 多媒体系统工程师系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径

    2024年01月17日
    浏览(51)
  • Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27

    最近准备更新专栏文章,AOSP源码自然也需要进行更新了,但这次不是为最新的android 13, 而是取android 12的最新tag version: android-12.1.0_r27,这应该是市面上的主流版本。 每次更新,自然也会遇到问题,所以就记录一下 另外,这次我们将直接配置本地服务器,而不是通过docker,让

    2023年04月26日
    浏览(39)
  • uboot源码下载以及编译

    环境:ubuntu 20.04 uboot官网在进入之后如下所示: 我们可以直接选择Obtaining the source进入到获取源码的网址 在点击Obtaining the source进入到新的网址之后就会看到下面提示去获取uboot的源码: The source of the U-Boot project is maintained in a Git repository. You can download the source via A mirror of th

    2024年02月02日
    浏览(43)
  • 如何下载ImGui源码并编译运行

    1. 通过Git download ImGui源码 如何通过Git下载ImGui源码之前已有介绍,这里附上ImGui源码地址: http://github.com/ocornut/imgui 复制下面的地址,利用Git Bash Here命令下载源码 ImGui源码中已经有.sln,因此不需要cMake build即可直接启动 2. 运行后的ImGui界面 界面上提供了几种基于OpenGL和DX不同

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包