Ubuntu 14.04下Android系統源碼編譯

2023-11-21 02:10

本文主要是介绍Ubuntu 14.04下Android系統源碼編譯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Ubuntu 14.04下Android系統源碼編譯

日期:2017/2/28 13:44:32      编辑:Linux教程

Android源碼編譯需要Linux環境,我這裡用的是Ubuntu 14.04,雖然Ubuntu 16.04出來很久了。但是16.04有些依賴沒解決得了,所以用14.04版本方便很多。下面將用Ubuntu 14.04環境為大家講述源碼的下載、編譯和刷機。

1、安裝curl、repo和git

安裝curl

sudo apt-get install curl        //install curl tool

安裝curl

sudo curl http://commondatastorage.googleapis.com/git-repo-downloads/repo  //download repo

如果你用這個下載安裝不了,你可以直接sudo apt-get install repo,按照上面的提示安裝即可。

安裝Git

sudo apt-get install git

git配置

sudo git config --global user.email "your@example.com"
sudo git config --global user.name "Your Name"

這個配置是否真實性對於下載源碼影響不大,你也可以直接填寫your@example.com和Your Name這樣的字樣下載源碼。

2.下載源碼

下載源碼之前先建好一個文件夾,然後用命令進入該文件夾,最後才建倉下載。這樣的做的好處就是沒那麼混亂。

repo init -u git://codeaurora.org/platform/manifest.git -b release -m LA.BR.1.2.3-10210-8x09.0.xml --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
repo sync

我這裡下載的是高通安卓源碼,
下載地址見:https://wiki.codeaurora.org/xwiki/bin/QAEP/release
上面的LA.BR.1.2.3-10210-8x09.0.xml對應的是Android5.1.1版本。你也可以選擇你要下載的版本。
另外你也可以從谷歌和清華下載源下載。
谷歌源碼下載:https://source.android.com/source/downloading.html#initializing-a-repo-client
清華下載源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
一個系統的源碼大概是40多GB,編譯也要部分的空間,你的磁盤注意要留有足夠的空間。

3.依賴包下載

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
  • 1
  • 1

安裝openjdk7

sudo apt-get install openjdk-7-jdk

4.編譯源碼

在命令行裡進入該源碼的目錄裡。

source build/envsetup.sh
lunch

它會顯示可選編譯cpu架構,然後選擇對應的cpu結構,一般選0,你也可以根據你需要來選。

Lunch menu... pick a combo:1. aosp_arm-eng2. aosp_arm64-eng3. aosp_mips-eng4. aosp_mips64-eng5. aosp_x86-eng6. aosp_x86_64-eng7. mini_emulator_mips-userdebug8. mini_emulator_x86_64-userdebug9. m_e_arm-userdebug10. mini_emulator_arm64-userdebug11. mini_emulator_x86-userdebug.......

aosp_arm64-eng
- arm CPU架構。
- 64代表64位系統
- eng代表engineer版本
- user正式版,權限受限制
- userdebug版本,在user版本的基礎上開放了root權限和debug的權限。

最後開始編譯

make -jn (“n” means the thread numbers of CPU)

這裡的n表示線程數,一般是cpu數目的兩倍。比如說make -j8
編譯好的文件在work/LINUX/Android/out/target/product/xxx/裡面,
這裡的目錄根據因你的項目目錄不同而不同。一般來說,emmc_appsboot.mbn、boot.img、userdata.img、system.img、recovery.img是你最終需要的產物。

5.部分編譯

部分編譯一般用於修改代碼後在原來已經有編譯好的資源下進行差異化編譯。這樣的編譯速度快很多。
預備

source build/envsetup.sh
lunch

這裡的命令意義同上。差別在最後一步。下面每一步執行前請先執行source build/envsetup.shlunch

1)編譯about(生成emmc_appsboot.mbn)

make aboot -jn(“n” means the thread numbers of CPU)

目標文件夾work/LINUX/android/out/target/product/xxx/
這裡根據因你的項目目錄不同而不同,如果你的命令執行不了,可能是你輸入的命令字符格式不對,”-jn”需要是英文格式的

2)編譯內核(生成boot.img)

make bootimage -jn

目標目錄work/LINUX/android/out/target/product/xxx/,下面幾個目錄都是在這個目錄下,就不一一重復了。
3)編譯system(生成system.img)

make systemimage –jn

4)編譯userdata(生成userdata.img)

make userdataimage –jn

5)編譯recovery(生成recovery.img)

make recoveryimage –jn

6.刷機

這裡我假定你配置好adb環境,如果沒有請先下載Android SDK搭建環境。然後連上機子在電腦上讓電腦識別,在命令行裡輸入下面命令進行燒寫。
1)燒寫emmc_appsboot.mbn

adb reboot bootloader
fastboot flash aboot <path to emmc_appsboot.mbn >
fastboot reboot

path to emmc_appsboot.mbn 是你的emmc_appsboot.mbn目錄路徑,下同。

2)燒寫boot.img

adb reboot bootloader
fastboot flash boot <path to boot.img>
fastboot reboot

3)燒寫system.img

adb reboot bootloader
fastboot flash system <path to system.img>
fastboot reboot

4)燒寫userdata.img

adb reboot bootloader
fastboot flash userdata <path to userdata.img>
fastboot reboot

5) 燒寫 recovery.img:

adb reboot bootloader
fastboot flash recovery <path to recovery.img>
fastboot reboot

相關鏈接:
谷歌下載源:https://source.android.com/source/downloading.html#initializing-a-repo-client
清華下載源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

  • 上一頁:secureCRT連接CentOS7顯示module is unknown
  • 下一頁:CentOS7下Firewalld防火牆使用實例
Linux教程
Linux基礎教程:Eclipse中安裝JBossTools插件

1、先訪問JBoss Tools網站,看看上面怎麼說;  http://tools.jboss.org

Ubuntu 11.04 下 Firestarter 無法啟動解決辦法

Linux中netstat命令介紹及操作

從硬盤安裝Oracle Linux 6.3之軟驅故障

Linux rpm命令詳解

CentOS編譯安裝transmission[命令行BT客戶端]

Ubuntu AMD64 中解決 *ERROR* Raw EDID

在Linux下開啟背光Led鍵盤的背光

Ubuntu下輕松使用光盤刻錄工具[附圖]

Linux教程網
Linux下兩款圖片編輯軟件Fotoxx和Macrofusion介紹

FotoxxFotoxx是一款類似 Photoshop 的開源照片編輯程序,可運行Linux系統上。支持主要的

NAT+SQUID+DNAT+FORWARD+FIREWALL

i810主板安裝REDHAT 9進入圖形界面出現黑屏

Linux中實現多網卡綁定

Windows&Linux霸占鳌頭 新型OS誰與爭鋒

為了裝FreeBSD

Android內核驅動開發中的Kconfig文件結構分析(圖文)

linux多線程之自旋鎖

Vim 復制粘貼探秘

相关文章
  • linux用busybox制作ramdisk的腳本分享
  • Linux系統grub常見錯誤問題解決
  • Ghost 8.3備份和恢復Ubuntu 8.04 LTS
  • Ubuntu 8.04加源安裝Google Gadgets
  • Ubuntu Linux 8.04系統下智能拼音輸入法
  • Ubuntu 8.04系統中增加Windows中文字體
  • Ubuntu Linux下single模式無需密碼方法
  • 在Ubuntu Linux下安裝WebEx播放wrf文件
  • Ubuntu Linux系統下聲卡獨占的解決方法
  • Ubuntu Linux操作系統建立wikipedia鏡像
  • Ubuntu Linux 8.04 Vsftp 虛擬用戶配置
  • 在Ubuntu Linux 8.04上構建GCC和GTK環境
  • Ubuntu Linux系統Sudo命令無效解決方法
  • Ubuntu系統把終端用戶名改成紅色的技巧
Linux基礎知識 Linux入門 Linux技術 Linux教程 Linux服務器 關於Linux
文章推荐
Linux下播放藍光光碟

通過SecureCRT創建key登錄認證

經典的fork炸彈

CUPS介紹

热点聚焦

Windows 下基於 Eclipse 的可視化遠程 Linux C/C++ 開發環境搭建

Linux下 squid 手動清除緩存

Linux命令之nslookup(一)

如何在CentOS 5.5上安裝Kippo蜜罐

grep 命令系列:使用 grep 命令來搜索多個單詞

Linux運行等級,根目錄,文件類型等基本概念

Nautilus Gksu 插件:在右鍵菜單中增加“以管理員身份打開”

Gentoo內核編譯選項說明

Ubuntu下使用Blender 3D圖形專業設計工具

Fedora 19配置KVM虛擬機的橋接網絡

Copyright © Linux教程網 All Rights Reserved


这篇关于Ubuntu 14.04下Android系統源碼編譯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/399090

相关文章

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,