• 跳转至主导航
  • 跳到主要内容
  • 跳至主侧边栏
  • 跳转到页脚

科技丽拉

出血边缘,总是

  • 主页
  • 关于我们
  • 联系
  • 交易和优惠
Techlila 徽标
分享
分享
分享
Pin
42 分享
失时症
下一步

2019 年最后的 RuneScape 发展

从源代码编译Android ROM

科技丽拉 电话 Android

DIY:从源代码编译Android ROM

Shaunak Guharay 的头像 肖纳克·古哈雷
最后更新日期: January 9, 2022

Android 是世界上使用最广泛的移动操作系统。 最好的部分,它是完全开源的,通俗地说,这意味着源代码,实际程序可供所有人公开下载、定制和构建自己的 ROM。

有很多定制的 Android 发行版可用,流行的有 CyanogenMod、SlimROM、Paranoid Android、AOKP、Liquid Smooth、MIUI、Xylon、Ice Cold Jelly 等。

对于今天的指南,我们将编译 CyanogenMod 10.2,这是最流行的 Android 售后市场 ROM。 该过程与所有自定义 ROM 的 99% 相同,因此本指南也可用作编译其他 ROM 的参考。

先决条件

  1. 具有现成的内核和设备源的 Android 手机,已经扎根并安装了自定义恢复。
  2. 64 位 Linux 发行版(我们更喜欢 Ubuntu)。
  3. 您的硬盘上至少有 100GB 可用空间。
  4. Linux 终端命令的工作知识。
  5. 相当快的互联网连接。

注意事项: 64 位 Linux 操作系统是必须的,并且必须是本机安装,而不是虚拟机。

设置您的构建机器

1. 安装您选择的 Linux 操作系统: 64位版本,根据官方说明。 (本指南假设我们运行的是 Ubuntu 13.04)。 使用 100GB 交换分区保留至少 16GB 的分区。

2. 安装以下软件包列表: 打开终端应用程序,然后键入

[html]sudo apt-get 安装[/html]

按回车键,它会提示你输入密码。

软件包列表

[HTML]
混帐核心
格努普
柔性
野牛
蟒蛇
RAR
原始awk
呆子
p7zip-完整
性能
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-工具
必要的
拉链
卷曲
libncurses5-dev
zlib1g-dev
png粉碎
调度工具
libc6-dev
x11proto-core-dev
libx11开发
libg11-台面开发
mingw32
托弗罗多斯
蟒蛇降价
libxml2-实用程序
g++-多库
lib32z1-dev
ia32-库
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-多库
xsltproc
[/ html]

3. 为 Linux 1.6 位安装 Java JDK 64: 文件名应该是jdk-6u##-linux-x64.bin,##是版本号。 将下载的包移动到您的主目录。 打开终端应用程序并运行以下命令集:

[HTML]
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
须藤 mkdir –p /opt/java/64/
须藤cp jdk-6u##-linux-x64.bin /opt/java/64
向南-
cd /opt/java/64
chmod a+x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
出口
[/ html]

现在,我们必须将 JDK Path 添加到 .bashrc

[HTML]
sudo gedit~ / .bashrc
[/ html]

在文本文件的末尾添加这些行

[HTML]
# Java 路径
导出 JAVA_HOME=/opt/java/64/jdk1.6.0_##
导出路径=$PATH:$JAVA_HOME/bin
[/ html]

4. 安装安卓SDK: 打开终端应用程序

[HTML]
CD〜
mkdir android && cd android
mkdir SDK
[/ html]

下载 Android SDK 从 http://developer.android.com/sdk/index.html. 将包内容解压到 ~/android/sdk 我们必须将 Android SDK 路径添加到 .bashrc

[HTML]
sudo gedit~ / .bashrc
[/ html]

将这些行添加到文本文件的末尾:

[HTML]
# Android SDK 路径
导出 PATH=$PATH:~/android/sdk
导出 PATH=$PATH:~/android/sdk/platform-tools
导出 PATH=$PATH:~/android/sdk/tools
[/ html]

现在,通过键入安装 Android SDK 工具

[HTML]
机器人
[/ html]

5.设置你的github账号和远程仓库: 如果 CyanogenMod 正式支持您的手机,您可以跳过此步骤。 去github.com,为自己创建一个帐户。 对于本指南,我将您的用户名视为“用户”。

访问 'github.com/CyanogenMod/android',按 Fork。 远程清单将被分叉,并在您的个人仓库中可用。

现在,转到“github.com/user/android”。 打开文件 default.xml,按编辑。 找到这一行:

[HTML]

[/ html]

并将其替换为

[HTML]

[/ html]

我正在考虑将您的设备的内核源代码、设备源代码和 Android 4.3 的供应商库放在

[HTML]
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/供应商
[/ html]

我假设分支被命名为'jb4.3'。 您可以在实际的 repo 中找到确切的名称。 然后,在文件末尾添加这些行,并根据您设备的源代码修改它们。

[HTML]




[/ html]

提交您的更改。 您的远程清单已准备好部署。

6.安装回购命令: 打开终端并输入

[HTML]
CD〜
mkdir〜/箱
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a + x ~/bin/repo
[/ html]

我们必须将 Repo 路径添加到 .bashrc

[HTML]
sudo gedit~ / .bashrc
[/ html]

将此行添加到文本文件的末尾

[HTML]
导出路径=$PATH:~/bin
[/ html]

7. 获取ROM源代码: 打开终端并输入

[HTML]
mkdir ~/安卓/厘米
cd ~/安卓/厘米
[/ html]

如果您需要第 5 步,请输入

[HTML]
回购初始化 –u git://github.com/user/android.git –b cm-10.2
[/ html]

如果您的设备正式支持 CyanogenMod 10.2,请输入

[HTML]
回购初始化 –u git://github.com/CyanogenMod/android.git –b cm-10.2
[/ html]

现在运行

[HTML]
回购同步 –j16
[/ html]

去喝杯咖啡或吃顿饭,这需要很长时间。 源代码的大小超过 10GB,因此需要相当长的时间。

获取源

8. 设置设备特定的东西: 如果您的设备正式支持 CyanogenMod 10.2,则打开终端并输入

[HTML]
cd ~/安卓/厘米
. build/envsetup.sh && 早餐
[/ html]

需要一些时间,设备源大小约为3GB。 然后,您需要在手机上安装官方CM10.2,以USB Debugging模式连接到您的PC,并运行以下命令:

[HTML]
亚行根
cd ~/android/cm/设备/ / /
./提取文件.sh
[/ html]

如果您的设备不正式支持 CyanogenMod 10.2,那么您在此步骤中无所事事,源已经在等着您。

9. 下载 Prebuilt Stuff 并设置工具链: 打开终端并输入

[HTML]
cd ~/android/cm/供应商/cm
sh ./get-prebuilts
[/ html]

现在,我们必须将工具链路径添加到 ./bashrc

[HTML]
cd ~/安卓/厘米
sudo gedit~ / .bashrc
[/ html]

将这些行添加到文本文件的末尾

[HTML]
# Android 工具链
出口 ARCH=臂
导出 CCOMPILE=$CROSS_COMPILE
出口 CROSS_COMPILE=arm-eabi-
导出路径=$PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
[/ html]

10. 构建你的 ROM: 所以,一切都很好,准备好了。 是时候构建 ROM 了。 打开终端并输入

[HTML]
cd ~/安卓/厘米
. 构建/envsetup.sh
早午餐
[/ html]

是时候去睡午觉了。 在普通计算机上构建 ROM 需要数亿年的时间。 好吧,这有点夸张,但在我的家用 PC(Core i5 第二代,2GB RAM)上,从头开始构建需要 8 个多小时。 希望不会有错误,并且构建将正常完成。 你会得到输出包

[HTML]
~/android/cm/out/target/product/ /cm-10.2-something-UNOFFICIAL- 。压缩
[/ html]

是时候在手机上安装新编译的 ROM 了。 从“www.goo.im/gapps”下载适用于相应 Android 版本的 Google Apps 软件包。 将这两个包放入您的手机中,并在恢复模式下刷入它们。 瞧,您自己编译的 ROM 现在正在运行您的设备。

好了,你学会了如何编译 ROM。 那么现在怎么办?

更新您的源 ROM

要获取本地下载的源代码的新源代码更新,请打开终端,然后键入

[HTML]
cd ~/安卓/厘米
回购同步 –j16
[/ html]

要构建您的 ROM,请在更新源代码后,打开终端,然后键入

[HTML]
cd ~/安卓/厘米
使安装干净
find ./out/ -name 'build.prop' | xargs rm
找到 ./out/ -name 'cm_ -target_files-eng.*.zip' | xargs rm
. 构建/envsetup.sh
早午餐
[/ html]

由于您不是从头开始重新构建,而是按原样重新构建,因此花费的时间会大大减少,在大多数情况下只需大约 15-30 分钟。 您应该每周左右同步您的本地源,以保持您的本地源新鲜。

参见
设备植根? 现在要做什么 …

清理你的工作目录

要完全清理您的工作目录(阅读:将源文件夹恢复为库存状态),请打开终端并键入以下命令。

[HTML]
cd ~/安卓/厘米
使安装干净
搞砸
[/ html]

请记住,运行这些命令后,您的所有输出数据都将被删除,因此下一次构建将再次需要 3-4 小时,因为一切都是从头开始构建的。 如果你的硬盘分区很小,比如 100GB 左右,你应该每 4 次构建清理一次你的工作目录,否则你会用完硬盘空间。

通过 CCACHE 加速您的构建

构建 ROM 需要很多时间。 但是使用 CCACHE 可以减少大约 30-45% 的时间。 CCACHE 代表编译器缓存,它缓存早期构建的编译输出,以便可以在以后的构建中重用。

请注意,CCACHE 需要硬盘上的大量空间来缓存内容,因此当且仅当您的硬盘分区在 200GB 或更高的某个位置时才推荐使用它。 要设置 CCACHE,请打开终端并输入:

[HTML]
cd ~/安卓/厘米
出口 USE_CCACHE=1
导出 CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache –M 50G
[/ html]

您可以将分配给 CCACHE 的最大大小从 50GB 更改为您想要的任何大小,但至少应使用大约 30GB 以获得良好的结果。

从其他 ROM 获取提交

您可以从其他 ROM 源代码中挑选功能。 举例来说,我想从存储库“github.com/user/reporepo”中选择功能 A,提交 ID 为“12345”。

您导航到本地源代码中的包并在终端中运行它们。

[HTML]
光盘~/
git 获取 https://github.com/user/reporepo
git 樱桃挑选 12345
[/ html]

参见
10 款 Android 手机必备应用

著名Android自定义ROM发行版源代码链接

CyanogenMod的 – https://github.com/CyanogenMod
超薄ROM – https://github.com/SlimRoms
ParanoidAndroid – https://github.com/ParanoidAndroid
AOKP – https://github.com/AOKP
液体平滑 – https://github.com/liquidsmooth
木纹只读存储器 –
冰镇果冻 – https://github.com/IceColdJelly

所以,伙计们,这是一个简单、直接的指南,可以通过 10 个简单的步骤编译几乎任何基于 Android AOSP 的 ROM。 虽然我的指南侧重于 CyanogenMod,但您只需修改存储库链接即可编译几乎所有 AOSP ROM。 或者,您可以选择功能、提交它们、修改内容并创建您自己的个性化 ROM,也许也可以在线共享您的 ROM?

分享
分享
分享
Pin
42 分享

披露: TechLila 上发布的内容受读者支持。 对于通过我们的附属链接进行的购买,我们可能会收到佣金,您无需支付额外费用。 阅读我们的 免责声明页面 了解更多关于我们的资金、编辑政策和支持我们的方式。

分享就是关怀

分享
分享
分享
Pin
42 分享
Shaunak Guharay 的头像

肖纳克·古哈雷

肖纳克·古哈雷 是来自加尔各答的 Youtuber、有竞争力的编码员和 Android 开发人员。 他的兴趣范围从与手机、电脑和游戏有关的任何事情。

类别

  • Android

标签

安卓系统

读者互动

人们在说什么

  1. vishvast 的化身巨大的

    嗨,感谢今天的这篇文章,这个 android 世界像流行病一样蔓延,这是一篇不错的文章

    回复
  2. 陪审团罗莱斯的化身陪审团规则

    令人印象深刻的作品! 我真的很想为我的应用程序创建自己的代码!

    回复
  3. 杰西卡头像杰西卡

    我真的很喜欢看到这段代码,但我无法理解这段代码的某些部分。

    回复
  4. Shyantan deb的头像山丹丹

    嗨,肖纳克,
    Android在全球范围内确实广为流传。 感谢这篇精彩的帖子

    回复
  5. 苏西兰普曼的头像苏茜·兰普曼

    伟大的。 现在,如果我只能理解这些术语。 然后我可以编译android ROM

    回复

发表您的评论 取消回复

您的电子邮件地址将不会被公开。 必填 *

主要侧边栏

热门

如何在 Windows 上提高宽带速度

10 年 2021 款最佳 Android 启动器

安装 Windows 10 后要做的事情 – Windows 10 提示和技巧

您可以用来私下搜索网络的 10 大搜索引擎

55 个让你大吃一惊的有趣的计算机事实

购买笔记本电脑时要注意什么 - 笔记本电脑购买指南

Fusion Drive 与 SSD – 没有人告诉您关于 Fusion 与 SSD 存储的事情

有用的工具

• grammarly破解 - 免费语法检查器
• SEMrush – 专家信赖的最佳 SEO 工具
• Setapp – Mac 和 iOS 的一站式订阅

趋势主题

  • Android
  • 网络
  • iPhone
  • Linux的
  • 麦金塔
  • 确保用户
  • 社交媒体
  • 我们的技术
  • Windows

值得检查

适用于 Windows 10(10 版!)的 2022 个最佳声音均衡器

14 款强烈推荐且免费的最佳 VLC 皮肤

页脚徽标 页脚文字标志

页脚

关于我们

您好,欢迎来到 TechLila,这是著名的技术博客,您可以在其中找到有关掌握基础知识及其他知识的资源丰富的文章。

在 TechLila,我们的主要目标是提供独特的信息,例如高质量的提示和技巧、教程、Windows、Macintosh、Linux、Android、iPhone、安全性的操作指南以及一些杂项子主题,例如评论。

链接

  • 关于我们
  • 联系我们
  • 免责声明
  • 隐私政策
  • 条款

关注

使用 Genesis 框架的自定义主题

Cloudways 云托管

语言

en English
bg Българскиzh-CN 简体中文nl Nederlandsen Englishtl Filipinofr Françaisde Deutschid Bahasa Indonesiait Italianoja 日本語pl Polskipt Portuguêsro Românăru Русскийsr Српски језикes Españolsv Svenskatr Türkçeuk Українськаvi Tiếng Việt

© 版权所有 2012–2022 科技丽拉。保留所有权利。