网站建设方案格式,网站中数据查询如何做,记录开发wordpress主题,网站制作公司上海学习了这么多其他人的博客#xff0c;终于编译成功了。技术小白前来分享#xff0c;有不到位的希望大牛们指正。开源的意义在于分享。本文主要为遇到的错误解决 http://blog.sina.com.cn/s/blog_4ba5b45e0102ejbb.html这篇文章对我的帮助很大#xff0c;感谢作者
源码是别…学习了这么多其他人的博客终于编译成功了。技术小白前来分享有不到位的希望大牛们指正。开源的意义在于分享。本文主要为遇到的错误解决 http://blog.sina.com.cn/s/blog_4ba5b45e0102ejbb.html这篇文章对我的帮助很大感谢作者
源码是别人给的所以直接开始编译
cm12编译 1. 对本地库的操作 android要求的库 更新 sudo yum update sudo yum install mesa-libGL-devel sudo yum install libstdc.so.6 sudo yum install gcc, yum install gcc-c sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g-multilib mingw32 openjdk-6-jdk tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 由于以上是对于unbunte的安装fedora里会显示有些包没有。所以又看了fedora官网提供的android编译环境 https://fedoraproject.org/wiki/HOWTO_Setup_Android_Development yum install glibc.i686 glibc-devel.i686 libstdc.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686 2. 首先下载 kernel http://www.github.com/cyanogenmod/android_kernel_samsung_smdk4412 device http://www.github.com/cyanogenmod/android_device_samsung_n7100 下载 android_device_samsung_n7100 到/cm12/device/samsung/目录 Put the kernel in kernel/samsung/smdk4412并且命名为kernel 3. 要求openjdk7fedora21只提供openjdk8 修改build/core/main.mk 改为requires_openjdk : false 具体 For building Android, your best bet is to just install the Oracle JDK 7. I downloaded jdk-7u80-linux-x64.tar.gz and put in /opt/oracle/java/. Then you can just edit build/core/main.mk and force for all cases requires_openjdk : false Note that even if you get OpenJDK 1.7 installed on Fedora it returns java -version differently than Ubuntu and youll have to change the build/core/main.mk check for the version to look for openjdk instead of java at the beginning of the version. Using the Oracle JDK is fine, though. It is used for all host types that are not Linux. 4. 错误 build/core/main.mk:118: You are building on a case-insensitive filesystem. build/core/main.mk:119: Please move your source tree to a case-sensitive filesystem. build/core/main.mk:120: ************************************************************ build/core/main.mk:121: *** Case-insensitive filesystems not supported. Stop. solution Remove this from build/core/main.mk, then compile: ifneq ($(HOST_OS),windows) ifneq ($(HOST_OS)-$(HOST_ARCH),darwin-ppc) # check for a case sensitive file system ifneq (a,$(shell mkdir -p $(OUT_DIR) ; \ echo a $(OUT_DIR)/casecheck.txt; \ echo B $(OUT_DIR)/CaseCheck.txt; \ cat $(OUT_DIR)/casecheck.txt)) $(warning ************************************************************) $(warning You are building on a case-insensitive filesystem.) $(warning Please move your source tree to a case-sensitive filesystem.) $(warning ************************************************************) $(error Case-insensitive filesystems not supported) endif endif endif It will disable the case-sensitivity check. 5. ake: *** 没有规则可以创建“/home/pengfei/work/Android/cm12/out/target/product/n7100/system/bin/gpsd”需要的目标“vendor/samsung/n7100/proprietary/system/bin/gpsd”。 停止 solution https://github.com/TheMuppets/proprietary_vendor_samsung/tree/cm-12.0 下载n7100和smdk4412-common 直接拷贝到相应的 /vendor/samsung/ 目录下 6. 错误 build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/samsung/n8000/cm.mk]]: hardware/samsung/exynos4x12.mk does not exist。 停止。 ** Dont have a product spec for: cm_n8000 ** Do you have the right repo manifest? No such item in brunch menu. Try breakfast solution 解决办法缺少samsung硬件基础库。 https://github.com/CyanogenMod/android_hardware_samsung 下载后将里面的文件替换到 hardware/samsung/下面。 7. [rootlocalhost android-cm-10.2]# breakfast n8000 including vendor/cm/vendorsetup.sh build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/samsung/n8000/cm.mk]]: device/samsung/n80xx-common/n80xx-common.mk does not exist。 停止。 Device n8000 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod). ^X^CTraceback (most recent call last): File build/tools/roomservice.py, line 76, in result json.loads(urllib.request.urlopen(githubreq).read().decode()) File /usr/lib64/python2.6/socket.py, line 354, in read data self._sock.recv(rbufsize) File /usr/lib64/python2.6/httplib.py, line 542, in read s self.fp.read(amt) File /usr/lib64/python2.6/socket.py, line 383, in read data self._sock.recv(left) File /usr/lib64/python2.6/ssl.py, line 215, in recv return self.read(buflen) File /usr/lib64/python2.6/ssl.py, line 136, in read return self._sslobj.read(len) KeyboardInterrupt build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/samsung/n8000/cm.mk]]: device/samsung/n80xx-common/n80xx-common.mk does not exist。 停止。 ** Dont have a product spec for: cm_n8000 ** Do you have the right repo manifest? 由于n8000的很多驱动是基于 n80xx-common 驱动包的所以需要预先下载 n80xx-common 驱动包这也是为何 n8000 驱动包那么小的缘故。 从 https://github.com/CyanogenMod/android_device_samsung_n80xx-common 这里面将 n80xx-common 驱动包下载下来放到 cm-10/device/samsung/n80xx-common 这个目录下这个目录本身是没有的需要新建。 chmod x android-cm-10.2/device/samsung/n80xx-common/extract-files.sh https://github.com/CyanogenMod/android_device_samsung_n7100/tree/cm-12.0https://github.com/CyanogenMod/android_device_samsung_smdk4412-common 下载后放到 device/samsung/ 8. 一直显示这个错误 make: *** No rule to make target out/target/product/n7000/kernel, needed by out/target/product/n7000/boot.img看看 或者cannot load kernel out/target/product/n7000/kernel solution 我觉得是因为首先是没有编好内核。 而没能编出来内核是因为我忽略了这一步./extract-files.sh认为是给电脑编不需要连接手机原谅我是小白。 这个脚本的主要作用是将手机中的驱动so库pull出来。 这期间还需要手机的root国内网站的包刷了总fail 这个网站的包能用下载CF-Auto-Root和Odin 3.09 http://www.ibtimes.co.uk/root-galaxy-note-2-n7100-all-android-4-4-2-kitkat-firmware-1446111 9. root之后进行./extract-files.sh依然报错 adbd cannot run as root in production builds root不彻底 http://stackoverflow.com/questions/25271878/android-adbd-cannot-run-as-root-in-production-buildshttp://forum.xda-developers.com/showthread.php?t1687590 The problem is that, even though your phone is rooted, the adbd server on the phone does not use root permissions. You can try to bypass these checks or install a different adbd on your phone or install a custom kernel/distribution that includes a patched adbd. Or, a much easier solution is to use adbd insecure from chainfire which will patch your adbd on the fly. Its not permanent, so you have to run it before starting up the adb server (or else set it to run every boot). You can get the app from the google play store for a couple bucks: https://play.google.com/store/apps/details?ideu.chainfire.adbdhlen Or you can get it for free, the author has posted a free version on xda-developers: http://forum.xda-developers.com/showthread.php?t1687590 Install it to your device (copy it to the device and open the apk file with a file manager), run adb insecure on the device, and finally kill the adb server on your computer: % adb kill-server And then restart the server and it should already be root. 这段英文讲的很详细大概ia就算第二个网站可以免费下到adb insecure下到以后直接复制到手机的文件夹里以便可以直接从手机操作点击安装起来。运行这个软件点击两个钩enable insecure adbd enable at boot.之后要在电脑上面adb kill-server。再重新连接adb shell su。 再进到目录/device/samsung/n7100下./extract-files.sh。 下面看看怎么编内核 总体流程是这个样子的 $ cd ~/cm12 $ source build/envsetup.sh $ breakfast n7100 $ cd /device/samsung/n7100 $ ./extract-files.sh。。。。。。做这步的时候手机要root。 回到/cm12$ croot http://ju.outofmemory.cn/entry/226866 这篇文章非常详细并且正确 按照文中所说进入kernel目录下面kernel/samsung/smdk4412 make ARCHarm cyanogenmod_n7100_defconfig make ARCHarm menuconfig cp .config arch/arm/configs/cyanogenmod_n7100_defconfig make mrproper。。。。。这步不能丢 回到根目录mka bootimage