CM源码(CyanogenMod)源码编译

2024-06-10 23:48
文章标签 编译 源码 cm cyanogenmod

本文主要是介绍CM源码(CyanogenMod)源码编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CM源码(CyanogenMod)源码编译教程

准备编译环境

 

注意: 编译环境只需要搭建一次,如果你之前搭好环境了,

安装编译必须的组件包

安装编译ROM必须用到的一些组件包:

32位&64位系统都必须安装以下组件包:

git-core gnupg flex bison gperflibsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zipcurl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool

64位系统还需要安装一下组件包:

g++-multilib lib32z1-dev lib32ncurses5-devlib32readline5-dev gcc-4.3-multilib g++-4.3-multilib

提示: 安装的时候可能会提示部分组件包被新的包代替,没有关系的。

 

提示: 如果是Ubuntu 10.10, 你必须通过以下命令增加一个合作源才可以安装sun-java6-jdk:

add-apt-repository "debhttp://archive.canonical.com/ maverick partner"

 

创建目录

你必须先创建一些必须的目录来同步CM源码

输入以下命令建立bin目录用来存放repo等工具:

mkdir -p ~/bin

建立android/system目录来放置CM源码,这里的android和system都是可以按照个人需要改变的。比如cm/cm7、cm/cm9等等。

mkdir -p ~/android/system

 

安装Repo功能

通过一下命令安装“repo”工具:

curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo<

chmod a+x ~/bin/repo

提示: 你可能需要重启电脑才能生效。

接下来对repo设置你要获取的源码分支:

cd ~/android/system/

repo init -ugit://github.com/CyanogenMod/android.git -b gingerbread

repo sync -j16

 

从设备获取必须文件

 

NOTE: 这个步骤每台手机机器只要操作一次即可,不用每次编译都执行,之前执行过的话,

You will need to have a {{{Device}}} with aworking copy of CyanogenMod install and ADB working on the computer. Thisscript will copy the proprietary files from the device.

Connect the device to the computer andensure that ADB is working properly.

cd~/android/system/device/{{{vendor}}}/{{{device}}}/

./extract-files.sh

NOTE: If some hardware isn’t working, likecamcorder or FM radio, you will need to find the updated prop blobs.

 

下载RomManager

 

注意: 这个步骤仅仅是为了更新RomManager,如果你不想更新到最新版本.

但是,要注意的是,RomManager是必须的,没有RomManager可能会出现编译不通过。

执行以下命令就可以了:

~/android/system/vendor/cyanogen/get-rommanager

编译CM源码(CyanogenMod)

 

更新源码

首先更新一下源码:

cd ~/android/system/

repo sync

确定机型 & 编译

确定你要编译的机型代号.

. build/envsetup.sh && brunch 机器代码

检查源码

First, check for updates in the source:

cd ~/android/system/

repo sync

刷机测试

 

在~/android/system/out/target/product/机器代码文件夹下可以找到编译好的ROM包,名称一般类似update.cm-XXXXX-signed.zip.

 

 

 

http://sunzeduo.blog.51cto.com/2758509/1357302

http://blog.csdn.net/andie_guo/article/details/16879443

http://hualang.iteye.com/blog/1139269

http://ihopeyoustayforeveryoung.iteye.com/blog/1559973

http://www.banxiayue.com/ubuntu1204android403.html

 

 

 

http://download.cyanogenmod.com/?device=crespo&type=stable

http://wiki.cyanogenmod.org/w/Development

http://wiki.cyanogenmod.org/w/Build_for_maguro

这篇关于CM源码(CyanogenMod)源码编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。