当前位置:首页 » 编程软件 » cm编译教程

cm编译教程

发布时间: 2023-05-13 18:10:30

① 如何编译 cm12

CN:准备编译
EN:Preparing System for Build

CN:通过APT-GET,安装以下d软件包
EN:Install the following items via apt-get.

Code:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev

CN:如果是32位系统,清不要安装g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
EN:As per the instructions on the wiki for building CM, if you use a 32bit system, do not install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev.

CN:安装最新版本JDK
EN:Install the latest version of Java's development kit using the following.

Code:
sudo apt-get install openjdk-7-jdk

CN:安装ADT
EN:Install the Android Development Kit using the following.
Code:
sudo apt-get install android androidsdk-uiautomatorviewer android-right android-src-vendor android-emulator android-tools-adb android-headers android-tools-adbd androidsdk-ddms android-tools-fastboot androidsdk-hierarchyviewer android-tools-fsutils androidsdk-traceview

CN:执行以下指令
EN:Run the following in terminal.
Code:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

CN:重启系统,加载配置文件
EN:reboot your system or use the following in terminal to load the .profile file again.
Code:
. ~/.profile

CN: 获取源码
EN:Getting the source code.

CN:执行以下命令,获取CM12的源码
EN:Now we can get onto grabbing the source code of CM12.
Run the following in terminal.

Code:
mkdir ~/cm
cd ~/cm
repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
mkdir .repo/local_manifests
nano .repo/local_manifests/local_manifests.xml

CN: 当NANO打开之后,粘贴下面的内容,然后用ctrlx保存
When nano appears, paste the following into it and then exit using ctrl-x and choose to save.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" />
<project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.0" />
<project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" />
<project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" />
<project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" />
<project name="CyanogenMod/android_frameworks_opt_connectivity" path="frameworks/opt/connectivity" remote="github" revision="cm-11.0" />
</manifest>

CN: 执行以下代码,继续获取代码
EN:Continue getting the code using the following.
Code:
repo sync
cd vendor/cm
./get-prebuilts
cd ../..

CN: 编译 CM12
EN:Building CM12
Run the following commands to build CyanogenMod.

Code:
. build/envsetup.sh
breakfast bacon
brunch bacon

CN: 成功编译,从out/target/proct/bacon/ 获取 cm-12-*-UNOFFICIAL-bacon.zip
EN:After successful build, you should be able to go about ing the built CyanogenMod and installing it into your phone. The CyanogenMod build is located in ~/cm/out/target/proct/bacon/ named something like cm-12-*-UNOFFICIAL-bacon.zip

You can install folllowing: http://forum.xda-developers.com/onep...s-one-t2940091

Re-building to update.
To re-build, you should just be able to run the following (Not yet tested myself, but makes logical sense).

Code:
make clobber
repo sync
cd vendor/cm
./get-prebuilts
cd ../..
. build/envsetup.sh
brunch bacon
Q&A
Q: Recieve error: fatal: plicate path device/qcom/sepolicy in ~/cm/.repo/manifest.xml
A: edit .repo/local_manifests/local_manifests.xml to remove the item which matches the item located in bold.

Q: How big is the repo?
A: 20GB just source code and 40GB when built. Therefore you should aim to have about 60GB free on your system.

② macos上如何编译cm源码

Initializing a Build Environment 里的 Setting up a Mac OS X build environment
里面有具体的方法,Android代码所在的分区是需要区分大小写的,默认的Mac分区是不区分大小写的,所以可能新建一个区分大小写的分区或者使用文档中的方式,建立一个虚拟分区文件,把它格式化成区分大小写的区分。
但是在Mac里设置编译环境很麻烦,因为Mac本身没有编译工具链,需要额外的安装,还需要安装xCode,等等。

③ 哪个版本的cmcake能够编译opencv3.2.0

【OpenCV】在linux下用CMAKE编译安装OpenCV3.2.0
【安装相关软件和库】
1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以自激埋行搜索,这里推荐一个链接:
http://www.cnblogs.com/lyq105/archive/2010/12/03/1895067.html
在联网下,在终端输入:
sudo apt-get install cmake
【编译、安装OPENCV】
1.从OPENCV官网下载OpenCV-3.2.0.zip
2.建议把伍纤OpenCV-3.2.0.zip 移动到主目录下;
mv [OpenCV-3.2.0.zip存放路径/opencv3.2.0.zip] ~/opencv_3.2.0.zip
3.配置CMAKE相关信息,默认安装目录,编译类型(DEBUG/RELEASE),对相关语言、环境的支持(如QT,python),
在终端输入:
cd ~
unzip opencv_3.2.0.zip
cd opencv-3.2.0
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
-D WITH_QT=ON 这个选项表示支持QT,-D CMAKE_INSTALL_PREFIX=/usr/local 表示安装目录。
网上许多教程,都是建议在OpenCV下新建议个编译结果的目录,但是我尝试了很多种方法,最后直接在解压后的OpenCV 目录下 cmake 才成功了。
3.编译
在终端输入:
make -j($nproc)
-j表示用几个线程来编译,这样可以加快编译速度,不过这个与makefile的质量有关,有的工程用了-j会编译出错
4.安装
在终端输入:
sudo make install
5.配置环境变量
a.添加库路径:
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
这里使用了标准输出重定向,/usr/local OpenCV安装目录,在lib下有我们的.so库 ,把这“/usr/local/lib” “打印”--echo到/etc/ld.so.conf.d/opencv.conf'
b.更新库路径:
sudo ldconfig
【新建OpenCV的HelloWorld】
一、利用Make 和pkgconfig ,g++ 编译
1. pkgconfig 只是提供g++一些-I -L 选项
在终端输入:
pkg-config --cflags --libs opencv
看到输出一些-I -L选项如下,即pkg-config 安装正确,OpenCV 安装正确。如未安装,请先安装;如果发现不正确,可以修改/usr/local/lib/pkgconfig/opencv.pc文件,这个文件就是opencv的目录配置。
-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
解决方案:
利用export 命令设置环境变量:[Qt安装目明橘蚂录下/version number /gcc_64/lib]
在终端输入:
export LD_LIBRARY_PATH=/home/yyh/Qt5.7.1/5.7/gcc_64/lib/
执行 ./opencv_test 出现下面的error,但是直接双击可以执行
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
Available platform plugins are: minimal, offscreen, xcb.
Reinstalling the application may fix this problem.
Aborted (core mped)
解决方案:
关闭终端重新执行
4.opencv_test.cpp

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;
#define PICTURE "./01.jpg"
int main(void)
{
IplImage* img = cvLoadImage(PICTURE, 0);
cvNamedWindow( "test", 0 );
cvShowImage("test", img);
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "test" );
return 0;
}

5.Makefile(赋值的时候注意TAB键)

CXX = g++
CFLAGS = -Wall
LDFLAGS = `pkg-config --cflags --libs opencv`

SRCS = $(wildcard *.cpp)
TARGETS = $(patsubst %.cpp, %,$(SRCS))

all:$(TARGETS)
$(TARGETS):$(SRCS)
$(CXX) -o $@ $< $(LDFLAGS) $(CFLAGS)
clean:
-rm -rf $(TARGETS) *~ .*swp
.PHONY: clean all

④ apktool反编译cm的settings失败,文件夹是空的,说无法打开其中的arsc文件(未损坏

反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。1、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。
3、出错问题1
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
这些小小的错误都会导致回编时译检查出错。
所以汉化时,注意对校,然后再回编译。
建议使用一些高级的文本编辑器,支持语法高亮视图的。
4、出错问题2
最近发现有些APK文件 反编译后,就算不汉化直接回编译,都会出错。
有可能的原因1,反编译后XML文件语法中@符号 前面多了"\" (\@ ),
用文本编辑工具 直接替换【\@】为【@】,应该可以解决。
建议使用最新版本的反编译工具。
5、建议大家使用新版本的APKTool工具,
当然如果新的有问题也可以试试旧的一、系统文件汉化再次强调
1、汉化Settings.apk(系统设置)、MMS.apk(信息)、Phone.apk(电话)、
等等系统文件,一定要先 安装构架,具体看另个文件
<关于APKTool工具反编译Settings.apk问题>。
2、系统文件汉化完后不需要签名,直接替换汉化后的文件,就可以了。
主要是,系统文件放在系统目录,无需再次读取签名获得权限,已经是高级了。
二、打包说明
1、通常汉化完回编译后,会自动生成所有APK内的文件,或者自动生成*.APK文件。
但是建议大家不要直接使用该文件,进了使用替换法,替换掉你汉化后的文件,
如:resources.arsc,如果修改过的图片,等等…
2、很多人对于APK文件 解压缩或压缩 都用“WinRAR”或“好压”,这里不推荐。
希望大家安装7-Zip这个压缩工具,对于zip格式的支持是最好的。而且很方便,
不需要重新关联apk 直接右键打开就行了。替换直接拖拉进去,就OK了一、回编译出错问题

(1.提示 strings.xml 最后一行错误,检查是否</string>符号错误;
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>

(2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8;
(3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方;

二、一切能正常但无法回编译
还有一种情况,apktool最新版本能正常反编译一个apk文件,在未做任何修改的情况下,无法回编译。
这是就要注意了,可以尝试一下用低版本的apktool进行【反编译】,然后在用高版本的apktoo工具【回编译】。
这里向大家推荐用 【APKDB】 这个工具,很方便,反编译时可以选择apktool的版本。

⑤ Manjaro下 Lineage OS(17.1) 编译环境搭建

此时你的Manjaro已经安装完成了,为了让你的Manjaro更好用可以先做下优化:

然后会弹出一个窗口,把三个都勾上

在最下方添加如下内容(主要是导入key用)

导入key

将文件修改为如下内容(中文部分重命名)

重命名文件夹

确认无误后重启,其它有需要的软件就自己安装
如果重启后出现不能适应客户机了,那就重装一下 gtkmm 和 gtkmm3 就可以了(重启生效),如果还不行你可能需要重装了。

可能这一步很多人句直接打开 官方网站教程 就开始撸了,包括我也是,但是走了不少弯路,话费了不少时间。

添加环境变量
打开~/.profile,在文件末尾添加如下内容。这里添加的路径($HOME/)是刚刚解压的路径,如果你解压到别的地方,这里路径跟着相应修改就可以了,正常的 linux 工具安装方法,没什么特别的。

source 一下文件,让配置立刻生效

安装工具链是交互式的,第一步会让你选择安装的 jdk 版本,我们要编译 Lineage OS 17.1 选择默认(open-jdk14),如果编译老版本则要选择对应的jdk版本(cm-14.1=>openjdk8 ),这里我们直接回车,接下来的都按默认,有提示是否安装的就输入 y 回车就行,只要你主机有联网很快就能装好了。

注:如果安装工具链出现有些包找不到之类的,你可以尝试换一下软件源。要自己装 jdk 的话使用 pacman -S jdkX-openjdk (X替换成要安装的版本)

此时你可以在终端上输入 python 验证一下 Python 版本是否正常。

开机自动加载虚拟内存
在 /etc/fstab 文件中添加如下内容(如果之前已经添加过虚拟内存记得替换掉)

在/etc/samba/下添加smb.conf文件,文件内容如下

添加samba帐号 (这里和系统帐号是分开的,可以同名但需要再配置一次)

启用smaba 服务

改成



改成



改成

同步源码树(以后只需执行这条命令来同步):

漫长的等待,何时完成就随缘吧!

Lineage OS 目前编译后只有卡刷包,你可以先刷一个第三方的 Recovery (twrp)。或者像我一样,下一个小米官方的线刷包,将编译后的 img 文件替换掉小米官方线刷包中的同名文件(并没有一一匹配,替换重名的就行),我目前是这么刷的使用上并没有发现有问题,当然最好还是先刷一个 Recovery 再用 Recovery 刷卡刷包了,后续更新就可以用 adb 刷有更新的镜像了(一般也就内核和 system.img 了)

因为官方的recovery会校验ROM包,非官方包是刷不了的,所以需要先将recovery替换掉。这里可以替换成LineageOS的recovery(在编译后的out目录中有),也可以刷成其他第三方的,如twrp:

在recovery进行双清,并且刷入新系统的ROM(zip包)

⑥ 如何写自己手机的device 可编译基本的cm包

先同步源码,时间很长,在这过程中可以去配置编译环境,具体要装哪些依赖你可以去cm官网看一下,然后同步源码好了之后同步你机型的device,如果官方没有device就需要自己写device了。完事就可以编译了
cd <源码所在目录>
. build/envsetup.sh
brunch <你的设备的名>
例如google n4 是mako ,
那就是brunch mako
然后就开始编译了。
编译时间很长。晚上睡觉前放那编译,然后早上差不多就好了。差不多5小时的样子

⑦ 编译cm11出错

我刚才也遇到了这个错误,现在解决了,其实不是graphics_overlay.c这个文件出错,以后你在编译cm时遇到这种错误基本上都不是源文件出错,而是你的device目录里出错,我的就是msm8960-common这个文件夹有问题(我编译的这个device是8960平台),所以你就到github去找一下别的msm8960-common资源回来替换(以我为例),然后再编译,看看是不是可以通过,纯手打,望采纳

⑧ ROM制作工具如何制作手机刷机包

具体步骤如下:

打开ROM制作工具,选择【批量制作】

热点内容
水电煤算法 发布:2025-07-04 18:36:44 浏览:328
天翼视讯缓存文件夹 发布:2025-07-04 18:36:43 浏览:96
unix网络编程第2卷 发布:2025-07-04 18:33:41 浏览:780
编译历史 发布:2025-07-04 18:23:01 浏览:851
空调压缩机种类 发布:2025-07-04 18:13:58 浏览:242
中国有ip6服务器吗 发布:2025-07-04 17:58:56 浏览:726
第六章编译原理答案 发布:2025-07-04 17:37:55 浏览:40
php内存优化 发布:2025-07-04 17:25:54 浏览:664
威纶触摸屏如何设置时间限制密码 发布:2025-07-04 17:25:50 浏览:418
python列表的遍历 发布:2025-07-04 17:24:20 浏览:24