Android Framework学习笔记 -- 移植cm的记录

来源:互联网 发布:linux原生游戏 编辑:程序博客网 时间:2024/05/22 14:12

下了一整套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-engtarget 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=270336error: /home/axlecho/cm/out/target/product/jasmine/boot.img too large (8009728 > [3784704 - 270336])make: *** [/home/axlecho/cm/out/target/product/jasmine/boot.img] 错误 1make: *** 正在删除文件“/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 := 0x00A3B000BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x00EAB800BOARD_SYSTEMIMAGE_PARTITION_SIZE := 0x451DA930BOARD_USERDATAIMAGE_PARTITION_SIZE := 0x1FEDCAB4BOARD_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.stampmkdir -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" bisonmkdir -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" bisonGyp 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_exceptionOSError: [Errno 2] No such file or directory    raise child_exceptionOSError: [Errno 2] No such file or directorymake: *** [/home/axlecho/cm/out/target/product/generic/obj/GYP/shared_intermediates/blink/core/CSSGrammar.cpp] 错误 1make: *** 正在等待未完成的任务....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的)