(NOT OK) How To Build CyanogenMod Android for Motorola Defy ("jordan")

yum install java-devel
yum install java-1.6.0-openjdk-devel
updatedb
locate javac

# dd if=/dev/zero of=/run/media/root/Elements/ztguang/android.iso bs=1M count=112640
# mkfs.ext4 /run/media/root/Elements/ztguang/android.iso
# mount /run/media/root/Elements/ztguang/android.iso /mnt/iso

# mkdir -p /mnt/iso/android-source/android/system
# cd /mnt/iso/android-source/android/system

-----------------------------------------------
[root@localhost system]# gedit .repo/manifests/default.xml
           fetch="https://android.googlesource.com"
改为
           fetch="https://aosp.tuna.tsinghua.edu.cn/"

           fetch="git://aosp.tuna.tsinghua.edu.cn/aosp/"
-----------------------------------------------
[root@localhost system]# gedit /bin/repo

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/aosp/'
-----------------------------------------------

# repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
# repo sync -j16; while [ $? = 1 ]; do sleep 1; repo sync -j16; done

# cd vendor/cyanogen
# ./get-rommanager                //Once completed, this does not need to be done again.

# cd /mnt/iso/android-source/android/system
# source build/envsetup.sh
# lunch        or        # lunch cm_jordan-userdebug        or        # lunch full_jordan-userdebug

# cd device/motorola/jordan
# ./extract-files.sh        //Now ensure that your Defy is connected to your computer via the USB cable

# cd -
# export USE_CCACHE=1
# prebuilt/linux-x86/ccache/ccache -M 50G

# export PATH=/usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/:$PATH

# croot
# brunch jordan

-----------------------------------------------没有/mnt/iso/android-source/android/system/device/motorola/jordan文件夹的解决方法
在    https://github.com/CyanogenMod
搜索(filters)  android_device_motorola_jordan
下载得到 android_device_motorola_jordan-gb-release-7.2.zip,然后,解压,内容复制到 device/motorola/jordan中

单独 clone jordan
[root@localhost tmp]# git init
[root@localhost tmp]# git clone https://github.com/CyanogenMod/android_device_motorola_jordan.git

-----------------------------------------------
target Prebuilt: gdbserver (out/target/product/jordan/obj/EXECUTABLES/gdbserver_intermediates/gdbserver)
make: *** 没有规则可以创建“out/target/product/jordan/obj/lib/libaudio.so”需要的目标“vendor/motorola/jordan/proprietary/lib/libaudio.so”。 停止。
make: *** 正在等待未完成的任务....

解决方法:
下载 libaudio.so (搜索关键字:jordan libaudio.so)        到    /opt/tools/
[root@localhost system]# cp /opt/tools/libaudio.so vendor/motorola/jordan/proprietary/lib/
[root@localhost system]# cp /opt/tools/libaudio.so out/target/product/jordan/system/lib/

-----------------------------------------------
修改 .repo/manifests.git/config,将
    url = git://github.com/CyanogenMod/android.git
更改为
    url = git://aosp.tuna.tsinghua.edu.cn/aosp/platform/manifest
    # 或 url = https://aosp.tuna.tsinghua.edu.cn/platform/manifest
这个方法也可以用来在同步 Cyanogenmod 代码的时候从 TUNA 同步部分代码


-----------------------------------------------如下尝试,若不行,则还原
[root@localhost motorola]# ls
common  jordan  jordan-common
[root@localhost motorola]# mv jordan jordan.bac
[root@localhost motorola]# cp -a jordan-common/ jordan
[root@localhost motorola]# cd jordan
[root@localhost jordan]# mv jordan-common-blobs.mk jordan-blobs.mk
[root@localhost jordan]# mv jordan-common.mk jordan.mk

-----------------------------------------------
error: Cannot fetch CyanogenMod/android external svox.
error: Cannot fetch CyanogenMod/android hardware ti wpan.

[root@localhost system]# gedit .repo/manifests/default.xml

           fetch="https://aosp.tuna.tsinghua.edu.cn/"
改为
           fetch="https://android.googlesource.com"

删除line129,  <project path="external/svox" name="CyanogenMod/android_external_svox" />
删除line162,  <project path="hardware/ti/wpan" name="CyanogenMod/android_hardware_ti_wpan" />

添加:
  <project path="device/motorola/jordan" name="CyanogenMod/android_device_motorola_jordan" />
-----------------------------------------------
Your version is: java version "1.7.0_91".
The correct version is: 1.6.

export PATH=/usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/:$PATH
-----------------------------------------------


-----------------------------------------------
make: *** [out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/V8HTMLElementWrapperFactory.h] 错误 255
make: *** 正在等待未完成的任务....
make: *** [out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLNames.h] 错误 255
make: *** [out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLElementFactory.h] 错误 255


解决方法:
[root@localhost system]# gedit out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLElementFactory.h
内容是:http://www.opensource.apple.com/source/WebCore/WebCore-332/html/HTMLElementFactory.h
https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/HTMLElementFactory.cpp

[root@localhost system]# gedit out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/V8HTMLElementWrapperFactory.h
内容是:https://github.com/Treeeater/chrome_release_webkit_bindings/blob/master/V8HTMLElementWrapperFactory.h
https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/V8HTMLElementWrapperFactory.cpp

[root@localhost system]# gedit out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLNames.h
内容是:https://github.com/Treeeater/chrome_release_webkit_bindings/search?utf8=%E2%9C%93&q=HTMLNames.h

[root@localhost system]# gedit out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/XMLNames.cpp
内容是:https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/XMLNames.cpp

[root@localhost system]# gedit out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/XMLNSNames.cpp
内容是:https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/XMLNSNames.cpp

out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLNames.cpp
https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/HTMLNames.cpp

out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLElementFactory.cpp
https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/HTMLElementFactory.cpp

out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/V8HTMLElementWrapperFactory.cpp
https://github.com/Treeeater/chrome_release_webkit_bindings/blob/1b1f616598da8506b56e858e6fd20b4883496b10/V8HTMLElementWrapperFactory.cpp

[root@localhost system]# mv out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/platform/AtomicString.h out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/
[root@localhost system]# mv out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/platform/AtomicString.cpp out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/
[root@localhost system]#

gedit out/target/product/jordan/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/HTMLNames.h
#include "AtomicString.h"
//extern const WTF::AtomicString xhtmlNamespaceURI;
extern const AtomicString xhtmlNamespaceURI;

++++++++++++++++++++++++++++++++++

https://github.com/CyanogenMod/android_device_motorola_jordan.git

# repo init -u https://github.com/CyanogenMod/android_device_motorola_jordan.git

# repo sync -j16

error: .repo/manifests/: contains uncommitted changes

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

# repo init -u git://github.com/CyanogenDefy/android.git -b gingerbread

https://github.com/CyanogenMod/android_device_motorola_jordan.git

git clone https://github.com/CyanogenMod/android_device_motorola_jordan.git
git clone https://github.com/CyanogenMod/android_device_motorola_jordan
posted @ 2016-04-02 08:12  张同光  阅读(118)  评论(0编辑  收藏  举报