當前位置:首頁 » 編程軟體 » 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製作工具,選擇【批量製作】

熱點內容
取票人的密碼是什麼 發布:2024-05-20 08:21:43 瀏覽:962
天貓帳號密碼應輸入什麼 發布:2024-05-20 08:16:26 瀏覽:272
plsql異常處理 發布:2024-05-20 07:54:47 瀏覽:542
dreamweaver上傳網頁 發布:2024-05-20 07:51:24 瀏覽:462
拍攝車的分鏡頭腳本 發布:2024-05-20 07:50:15 瀏覽:137
mg名爵最高配置是哪個 發布:2024-05-20 07:45:11 瀏覽:376
輔助官網源碼 發布:2024-05-20 07:31:48 瀏覽:866
androidbutton的屬性 發布:2024-05-20 07:18:58 瀏覽:637
查找重復欄位的sql 發布:2024-05-20 07:18:17 瀏覽:303
我的世界創造房子伺服器 發布:2024-05-20 06:48:36 瀏覽:818