中文字幕在线精品_久操成人_免费国产一区二区_日韩二区三区_有码一区_欧美成人a

安卓清理大師
您當前位置: 刷機教程 -移植教程
MTK6589百度云ROM移植教程(以金立GN708W為例)
發布日期:2014/1/13 來源:ROM基地 編輯:ROM基地 12489 閱讀 0評論
百度云已經支持了MTK6589平臺的ROM A820,還有馬上要發布的G4。基于A820和G4,我們可以將百度云ROM移植到其他的MTK6589的機型上。由于A820是基于官方4.1制作的,G4網上有4.2的底包,百度應該會基于4.2的底包來制作。等G4發布之后,只要是MTK6589的芯片,無論是官方是4.1還是4.2的,都可以制作百度云ROM了。具體使用MTK6589芯片的手機,大家可以去百度一下,真心很多啊!

        在這里,我嘗試了一把將百度云的A820一直到風華2(GN708W的4.1)上,雖然風華2已經有4.2的包。但是大家可以看到風華2的4.2的包相對于4.1,也只是更新了boot和system兩個分區。
        如果對于百度云ROM拼包移植不熟悉的,可以先看一下刷機大師論壇發布的MTK6577的教程:
http://bbs.mgyun.com/thread-22686-1-1.html
里面有講如何修改boot.img、build.prop以及提前開啟adb(這個對于調試很重要)等等
之前MTK6577的移植教程里有說明的,這里就不再重復介紹了。這里主要講述在拼包過程中遇到的問題的解決辦法!
GN708W移植教程及問題
先簡單講一下我拼GN708W的幾個步驟及遇到的一些問題:
1、  解壓A820的ota包:
去百度云ROM官網上下載A820最新的ota包,然后解壓目錄ota-rom-34
2、  加入GN708W的驅動和硬件強相關文件:
將以下目錄的所有文件拷貝到ota-rom-34對應的目錄
/system/etc/firmware/*
/system/etc/permissions/*
/system/etc/mddb/*
/system/lib/hw/*
/system/lib/modules/*
/system/vendor/*
3、  參照MTK6577的教程去掉updater-script里面的機型校驗,然后打一個zip包,就可以開始用recovery刷入了。刷入之后,首先需要關注adb是否能夠正常使用。然后就看影響起機的關鍵進程了。后面會進行更詳細的介紹。
4、  遇到過一個不能起機的問題,是因為沒有/data/app-lib目錄導致,這個是4.1和4.2的差異。4.2需要在init.rc中創建/data/app-lib目錄,因而將A820上的這個修改弄過來就可以了。
5、  這里遇到過前置攝像頭不能用的問題,在將/system/lib/libcam*所有的so庫用GN708W的之后就可以解決了。還有一個閃光燈不能用的問題,反編譯了BaiduGallery3D.apk(當然得先去掉odex),然后修改了一些smali代碼做到的。已經跟官方項目組的聯系,ROM-35會去掉一些強依賴,到時候就可以不修改smali代碼了。
6、  還有一個默認存儲卡的問題,修改了init.rc,是參照A820的修改的,在init.rc的最后幾段。

關鍵進程啟動失敗的處理關鍵進程
往往在拼包完之后,發現不能起機,這個時候需要看以下的關鍵進程是否都起來了(用adb shell ps查看):

當然具體什么進程能影響不能起機,關鍵還的看init.rc的配置,不同的機型可能會有差別。如果這些進程都正常起來了,系統還是不能起機,這個時候你需要對比一下原生起來的進程跟你的有什么差異了,是不是比你的要多一些進程!

關鍵進程啟動失敗的處理方法
如果有進程不能正常起機,或者你發現它的進程id不停地在變化,說明這個進程是有問題的!
解決辦法:
adb shell后,手動執行進程,看有什么錯誤。
比如surfaceflinger沒有起來,執行以下命令:
adb shell
surfaceflinger

1、 缺少so庫:
比如我手動刪掉了libcamdrv.so庫,然后在adb shell之后運行mediaserver,就會出現如下信息:

soinfo_link_image(linker.cpp:1635):could not load library "libmediaplayerservice.so" needed by "mediaserver";caused by soinfo_link_image(linker.cpp:1635): could not load library"libstagefright.so" needed by "libmediaplayerservice.so";caused by soinfo_link_image(linker.cpp:1635): could not load library"libskia.so" needed by "libstagefright.so"; caused bysoinfo_link_image(linker.cpp:1635): could not load library"libmhalImageCodec.so" needed by "libskia.so"; caused bysoinfo_link_image(linker.cpp:1635): could not load library"libJpgDecPipe.so" needed by "libmhalImageCodec.so"; causedby soinfo_link_image(linker.cpp:1635): could not load library"libcamdrv.so" needed by "libJpgDecPipe.so"; caused byload_library(linker.cpp:745): library "libcamdrv.so" nCANNOT LINKEXECUTABLE  
 

這種信息需要從后面往前看,可以很輕松地看出是找不到libcamdrv.so庫。
2、缺少函數:
       少函數的提示信息跟缺少so庫的類似,你也只需要從后面往前看,找到對應的函數名稱,然后去grep,找到對應的so,然后push進去。當然C++的函數名比較長,不過沒有關系,一樣可以搜索出來的。

3、 段錯誤(Segmentationfault):

        當你手動運行某個進程,出現“Segmentationfault”的提示,或者用adb logcat看到有一堆DEBUG的log時,則表示有段錯誤!
比如,有一下DEBUG的log,下面是其中的backtrace片段:

    I/DEBUG   (  580): backtrace:
    I/DEBUG   (  580):     #00 pc 00011a50 /system/lib/libcamdrv.so(ImgSensorDrv::getCurrentSensorType(SENSOR_DEV_ENUM)+75)
    I/DEBUG   (  580):    #01  pc 0001302b  /system/lib/libcamdrv.so(ImgSensorDrv::impSearchSensor(int (*)())+422)
    I/DEBUG   (  580):    #02  pc 000133ed  /system/lib/libcamdrv.so(SensorDrv::searchSensor(int (*)())+14)
    I/DEBUG   (  580):    #03  pc 0001696f  /system/lib/libcamdrv.so(SensorHalImp::searchSensor()+226)
    I/DEBUG   (  580):    #04  pc 0000838d  /system/lib/hw/camera.default.so(android::CamDeviceManager::getNumberOfCameras()+120)
    I/DEBUG   (  580):    #05  pc 0001c317  /system/lib/libcameraservice.so(android::CameraService:: onFirstRef()+58)
    I/DEBUG   (  580):    #06  pc 0000ef2d  /system/lib/libutils.so(android::RefBase::incStrong(void const*) const+38)
    I/DEBUG   (  580):    #07  pc 00000bc9  /system/bin/mediaserver
    I/DEBUG   (  580):    #08  pc 00000c87  /system/bin/mediaserver
    I/DEBUG   (  580):    #09  pc 0001bd98  /system/lib/libc.so (__libc_init+64)
    I/DEBUG   (  580):    #10  pc 00000aa0  /system/bin/mediaserver

        這里是程序的調用的so庫的堆棧,可以看到最后的段錯誤發生在libcamdrv.so,這個時候,你嘗試著將libcamdrv.so進行替換。如果不行,再換下一個,即camera.default.so,依次類推。
       這個時候你會看到一些提示,比如so庫啊,或者少函數。如果是少so庫,去百度的或者官方的找一個就是了。如果是少函數,去grep一下,看哪個so庫有這個函數,然后將這個so換進去!哈哈~~~實在不行,把錯誤日志貼到百度去搜索一下!
注意事項:
有些進程起來是需要帶參數的,比如在init.rc中看到有這樣一段:
servicegsm0710muxd /system/bin/gsm0710muxd -s /dev/ttyC0 -f 512 -n 8 -m basic
說明gsm07010muxd這個進程是運行的/system/bin/gsm0710muxd文件,并且帶有參數“-s/dev/ttyC0 -f 512 -n 8 -m basic”
所以在這種情況下,你要跑gsm07010muxd進程,就得在adbshell之后輸入:
/system/bin/gsm0710muxd-s /dev/ttyC0 -f 512 -n 8 -m basic
當然,由于/system/bin已經加到PATH里面,你不輸入/system/bin/也是可以跑gsm0710muxd的。
怎樣利用objdump看文件的依賴關系:      
       在解決某些問題的時候,需要知道so庫或者bin之間的依賴關系,有些是動態加載的,是沒有辦法直接看到的。但是通過鏈接的so庫都可以看到的。
可以用objdump命令查看,具體方法如下:
比如我想看surfaceflinger這個bin依賴哪些so庫,則可以:
輸入:objdump -x surfaceflinger  |grep NEEDED
輸出:
NEEDED              libsurfaceflinger.so
NEEDED               libbinder.so
NEEDED               liblog.so
NEEDED               libutils.so
NEEDED               libc.so
NEEDED               libstdc++.so
NEEDED               libm.so
       你就會知道surfaceflinger依賴于上面這些so庫了,當然你如果想知道libsurfaceflinger.so依賴于哪些so庫,這種方法同樣是可以用的!objdump -x libsurfaceflinger.so | grep NEEDED
然后嘗試去替換一下,哈哈~~~
adb不能用,怎樣抓取日志:
       有些開發者可能覺得修改boot.img提前開啟adbd比較麻煩,下面我將教大家一種方法,怎樣在adb不能用的時候,抓取日志!
       一般而言,android都會起動一個install-recovery.sh的服務,所以你只需要在/system/etc/install-recovery.sh里面增加輸出日志的,不就可以了嘛!
如果有install-recovery.sh,則追加上以下語句:
logcat –v time >> /sdcard/log
如果沒有install-recovery.sh,則新建一個,需要有執行權限哦!內容如下:
#!/system/bin/sh
logcat –v time >> /sdcard/log
       在系統運行之后,把你的sdcard拿出來,就可以看到日志了。當然,如果你的手機還不能識別sdcard,你就只能放到/data/local/tmp,然后進到recovery去手動mount /data分區拿出來了!

發表評論
點擊換圖
發表
主站蜘蛛池模板: 国产成人久久久精品一区二区三区 | 精品伊人久久久久7777人 | 国产成人一区二区三区 | 国产欧美日韩中文字幕 | 国产免费看| 欧美国产亚洲一区二区三区 | 国产精品久久久久9999 | 国产在线精品99一卡2卡 | 毛片一区二区三区 | 国产情侣一区 | 可播放的免费男男videos不卡 | 久久精品国产欧美日韩99热 | 香蕉精品视频 | 欧美日韩 国产区 在线观看 | 国产成人成人一区二区 | 亚洲日韩在线观看 | 亚洲欧美在线观看一区二区 | 国产一区二区三区在线视频 | 欧美变态人zozo禽交 | 亚洲wwww | 美女视频黄a视频全免费应用 | 国产精品毛片在线直播完整版 | 欧美一区二区三区大片 | 国产成人高清一区二区私人 | 国内精品一区二区2021在线 | 欧美国产成人精品一区二区三区 | 日韩不卡一区二区三区 | 亚洲欧美日韩精品专区卡通 | 亚洲va欧美va天堂v国产综合 | 国产欧美日韩一区二区三区在线 | 亚洲精品免费在线 | 国产日韩欧美亚洲综合在线 | 日韩 欧美 综合 在线 制服 | 精品久久一区二区 | 欧美日韩成人高清色视频 | 亚洲 欧美 日韩 另类 | 免费爱爱视频网站 | 国产91精品一区二区视色 | 日韩欧美综合视频 | 69国产成人综合久久精品 | 国产精品va在线观看一 |