Android Framework學習筆記 -- 移植cm的記錄

下了一整套cm的代碼,複製備份,看了cm的官方文檔、老羅的博客和其他一些文章,感覺無從下手啊。突然想手裏還有個mi3,剛好cm有mi3的適配,先搞搞mi3的吧。


2015-11-2

mi3不是cm支持多版本已經放棄
先複製bacon的工程,打算編譯recovery

make -j4 otatools 成功 log:文件

mkvendor.sh 成功 log:文件

生成recovery失敗

$ . build/tools/device/makerecoveries.sh cm_jasmine-eng
target Strip: recovery (/home/axlecho/cm/out/target/product/jasmine/obj/EXECUTABLES/recovery_intermediates/recovery)
/home/axlecho/cm/out/target/product/jasmine/boot.img maxsize=3514368 blocksize=135168 total=8009728 reserve=270336
error: /home/axlecho/cm/out/target/product/jasmine/boot.img too large (8009728 > [3784704 - 270336])
make: *** [/home/axlecho/cm/out/target/product/jasmine/boot.img] 錯誤 1
make: *** 正在刪除文件“/home/axlecho/cm/out/target/product/jasmine/boot.img”

2015-11-4

注意:

  • source ./build/envsetup.sh
  • lunch

fix1:根據Recovery移植之高級小白教程——Recovery的編譯修改Build/Core/definitions.mk:

   # if [ "$total" -gt "$maxsize" ]; then \
   #    echo “error: $printname too large ($total > [$(2) - $reserve])”; \
   #    false; \
   #el
   if [ "$total" -gt $((maxsize - 32768)) ]; then \
       echo “WARNING: $printname approaching size limit ($total now; limit $maxsize)”; \
   fi \

生成recovery成功,但沒有生成文件 log:文件

fix2:根據Recovery移植之高級小白教程——Recovery的編譯修改BoardConfig.mk: (根據現有文件大小

BOARD_BOOTIMAGE_PARTITION_SIZE := 0x00A3B000
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00EAB800
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x451DA930
BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x1FEDCAB4
BOARD_FLASH_BLOCK_SIZE := 131072

生成成功 log:文件

刷入recovery失敗,由於機器fastboot oem unlock失敗


2015-11-5
刷入recovery成功,啓動不了(意料之中- -|||)

撿了個recovery.fstab,重新編譯,依舊啓動不了(- -|||估計要在這一步卡很久)


2015-12-11

xda出來個cm rom,重新編譯下,又有一堆錯誤

target StaticLib: skia_skia_library_gyp (/home/axlecho/cm/out/target/product/generic/obj/STATIC_LIBRARIES/skia_skia_library_gyp_intermediates/skia_skia_library_gyp.a)
Gyp timestamp: /home/axlecho/cm/out/target/product/generic/obj/GYP/third_party_WebKit_Source_core_inspector_protocol_sources_gyp_intermediates/inspector_protocol_sources.stamp
mkdir -p /home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core; cd external/chromium_org/third_party/WebKit/Source/core; 
python   ../build/scripts/rule_bison.py css/parser/CSSGrammar.y "/home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core" bison
mkdir -p /home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core; cd external/chromium_org/third_party/WebKit/Source/core; 
python ../build/scripts/rule_bison.py xml/XPathGrammar.y "/home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core" bison
Gyp action: Generating IDL files for constructors on global objects for core_global_constructors_idls
(/home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core/WindowCoreConstructors.idl)
Traceback (most recent call last):
  File "../build/scripts/rule_bison.py", line 82, in <module>
Traceback (most recent call last):
  File "../build/scripts/rule_bison.py", line 82, in <module>
    returnCode = subprocess.call([bisonExe, '-d', '-p', prefix, inputFile, '-o', outputCpp])
  File "/usr/lib/python2.7/subprocess.py", line 522, in call
    returnCode = subprocess.call([bisonExe, '-d', '-p', prefix, inputFile, '-o', outputCpp])
  File "/usr/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
    raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [/home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core/CSSGrammar.cpp] 錯誤 1
make: *** 正在等待未完成的任務....
make: *** [/home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core/XPathGrammar.cpp] 錯誤 1

#### make failed to build some targets (14:34 (mm:ss)) ####

fix1:環境的問題,根據官方更新系統環境Establishing a Build Environment


2015-12-12

make: *** 沒有規則可以創建“/home/axlecho/cm/out/target/product/onyx/obj/EXECUTABLES/wpa_supplicant_intermediates/import_includes”需要的目標“/home/axlecho/cm/out/target/product/onyx/obj/SHARED_LIBRARIES/libwpa_qmi_eap_proxy_intermediates/export_includes”。 停止。
make: *** 正在等待未完成的任務....

#### make failed to build some targets (09:47 (mm:ss)) ####

fix1:根據xda論壇 DISCUSSION_WIP_ROM_6.0 CyanogenMOD 13 UNOFFICIAL

For the error about missing "libwpa_qmi_eap_proxy.so" i was able to fix it on my personal CM13 build for my oneplus one. you need to copy the file from "proprietary_vendor_oppo/msm8974-common/proprietary/lib" directory into the "proprietary_vendor_oneplus/bacon/proprietary/lib" directory and then recompile.

程序包android.support.annotation不存在

frameworks/testing/runner/src/main/java/android/support/test/internal/runner/ClassPathScanner.java:19: 錯誤: 程序包android.support.annotation不存在

fix1:根據xda論壇 CM12.1 Compilation Error (package doesn’t exist)
將./manifests/default.xml中的

<project path="frameworks/testing" name="platform/frameworks/testing" remote="aosp" revision="android-support-test" />

最後編譯出了各種鏡像,但沒有壓縮好多rom包,感覺就很奇怪,直接用fastboot刷能刷進去,但卡在了開機畫面


2015-12-31

已廢棄,cm已經出來了(可以搞一下n1708的)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章