CM12.1源码编译并刷机到三星N5100

来源:互联网 发布:安卓graviboard软件 编辑:程序博客网 时间:2024/05/29 14:34

CM12.1源码已经下载获得(goagent倒腾了好久,因为在学校校园网流量限制,我傻呀,可以使用ipv6下载源码呀大哭大哭  浪费我两天时间,用了ipv6 下载好了)

编译参考链接:  

 官网链接:    http://wiki.cyanogenmod.org/w/Build_for_n5100#Download_the_source_code

 博客链接:    http://blog.csdn.net/andie_guo/article/details/16879443

                       http://blog.sina.com.cn/s/blog_4ba5b45e0102ejbb.html

                       http://blog.sina.com.cn/s/blog_4ba5b45e0102ejbb.html

                       http://jingyan.baidu.com/article/454316ab51e578f7a7c03a2c.html

                       http://sunzeduo.blog.51cto.com/2758509/1349134  

                       http://blog.sina.com.cn/s/blog_4aacf4fd0101kvrf.html

                       http://wv1124.iteye.com/blog/1944448

 第一步:$ source build/envsetup.sh
               $ breakfast n5100  //从github上下载对应手机的设备的驱动和内核;

               //注意 必须是CM官方支持升级到cm10.1的设备才能使用这个命令下载到//内核和驱动!!!) (只需执行一次,以后编译无需执行)              

【注:官网给的                               $ cd ~/android/system/vendor/cm                   $ ./get-prebuilts      
       针对的CM11或者以下的版本,我这里编译的是CM12.1,所以不需要哦。   】

   插曲: 对java版本有特别的要求

              update-alternatives --config javac         update-alternatives --config java

              按照该连接进行配置:  https://source.android.com/source/initializing.html

              sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-amd64/bin/java 50

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 50

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-openjdk-amd64/bin/jar 50

sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-openjdk-amd64/bin/javah 50

sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-openjdk-amd64/bin/javap 50

第二步: ./extract-files.sh

               执行这条命令的前提是N5100上已经刷上了CM12.1的ROM(错误,没有要求手机上必须刷了CM的ROM)

              (原来是个样子呀,人家源码的就不行吗?可是我现在已经开始编译了,肿么办。编完再看吧。应为之前  N5100刷过机,有可能歪打正着就可以了呢。。)

          cd cm-10.2/device/samsung/n5100

         chmod a+x extract-files.sh

        ./extract-files.sh    //从手机里面进行拉包操作  

        // (这条命令实际上都是组织好的的adb pull,它将真机中的部分库和依赖文件拷贝到本地源码环境,辅助编译!因为部分库和依赖文件的源码我们无法获取,

        //相关厂商只提供了这些编译好的东东!这一部很重要,如果跳过,即时编译ROM成功,刷机后手机也跑不起来的!) (只需执行一次,以后编译无需执行)


  第三步:   不要按照第一步第二步的方法了一个个下载了,breakfast命令下载东西巨慢无比,

                    直接下载下面的文件分别放到对应的目录下:

          /device/samsung/n5100            

          /device/samsung/nkona-common

         /device/samsung/smdk4412-common

         /kernel/samsung/smdk4412                                              

         /vendor/samsung/n5100                                              【下面的连接来自这个博客:http://blog.sina.com.cn/s/blog_4ba5b45e0102ejbb.html】

         /vendor/samsung/kona-common                                【proprietary_vendor_samsung-cm-12.1 .zip

         /vendor/samsung/smdk4412-common

 

目前存在的问题:

        问题一:      device/samsung/n5100/proprietary-files.txt 下罗列出来的.so库就是需要使用extract-files.sh脚本从上搞出来的

                               然后放到/vendor/samsung/n5100/proprietary/system/lib/下  现在我的两个不符。

      解决办法:   一般不会出现这种错误,但是不知道为啥n5100下载的device/n5100/proparietary_files.txt文件夹下面列出来的.so库通过github下载

                             (proprietary_vendor_samsung-cm-12.1 .zip),或者通过./extract-files.sh都得不到。。所以我就把proprietary-files.txt里面的.so改成了我能获得vendor 

                             里面能获得的。

       问题二:   /home/leiqing/CM12.1_Android/kernel/samsung/smdk4412/include/linux/sched.h:89:27: fatal error: linux/hrtimer.h: No such file or directory                                  #include <linux/hrtimer.h>  等相关的kernel报错。       解决办法:   这类kernel问题都是因为自己解压压缩包的时候不知道咋地出了问题,导致解压后少了部分文件。。重新正确解压就好。

                              第一次发现出错居然时因为这么奇葩的错误。看来任何地方都得消息。

                              unzip解压出来的有问题ubuntu版解压工具可能有问题,需要下载个专门的zip解压

                             apt-get install p7zip-full
                     解压缩  :7z -x android_kernel_samsung_smdk4412-cm-12.1.zip

   问题三:   #<asm/sam.h>文件不存在

   解决办法: 通过看github看 asm升级为 asm-generic,将文件中头文件出现asm改成asm-generic即可。

  编译成功

<span style="font-family:SimSun;">Package Complete: /home/leiqing/CM12.1_Android/out/target/product/n5100/cm-12.1-20150718-UNOFFICIAL-n5100.zip#### make completed successfully (01:19:10 (hh:mm:ss)) ####</span>


第四步: 刷机

   //  1.手机设置出厂设置

   //   2.手机recovery模式后,及时把.zip放到sdcard里面,似乎也识别不了。 【   apply update from external storage 】

                   adb push cm-12.1-20150703-NIGHTLY-n5100.zip /sdcard/update.zip
                    or:adb push cm-12.1-20150703-NIGHTLY-n5100.zip /sdcard/

   //  3.手机进入recovery模式(三键齐按) 进入:apply update from ADB     http://bbs.gfan.com/android-7053154-1-1.html

                      adb sideload cm-12.1-20150703-NIGHTLY-n5100.zip    

                      失败:E: failed to verify whole-file signature

                               E:signature verification failed

                      解决办法:百度说这种原因: recovery的签名认证问题,  刷非官方包需要换个recovery版本。即先替换非官网的recovery。

   // 从上面一步步走到底下的整整的

       4.首先要安装第三方recovery,三星官网的recovery不支持其他刷机包进行给手机刷机。

                  odin  ID:COM不显示 主要是手机驱动有问题。

                 http://bbs.gfan.com/android-7975235-1-1.html    音乐下键------>刷入recovery模式。  音乐上键----->进入recovery模式。

         注意:  必须双清后才能进行刷机,否则一直报失败。


             好激动,刷机成功。。。赶紧下载了qq和男票视频了下,纪念下。。大笑


    很久没接触,居然连编译命令都忘了,罪过罪过:

       1.  source build/envsetup.sh

       2.  croot

      3.  brunch n5100


0 0