PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 數位行動產品討論區
(https://www.pcdvd.com.tw/forumdisplay.php?f=75)
- - 安卓的Kernel可以替換嗎
(https://www.pcdvd.com.tw/showthread.php?t=1121258)
|
---|
安卓的Kernel可以替換嗎
想把 2.6 版本替換成 3.0.4
原始的版本,核心是 2.6 因為我刷 custom ROM 4.2.2 版本 但是核心仍然是 2.6。 如果把核心換成 3.0.4 不知道行不行。 boot.img 裡面只是ramdisk跟Kerne 各廠牌應該只是差在啟動參數吧? 安卓應用跟 Kernel 有沒有直接的關係?還是只跟 framework 有關? |
應該不行 ROM跟kernel是有關係的
如果你要試 記得先用twrp等完整備份 |
引用:
我試了 沒辦法刷boot.img進去 好像是因為 boot 分割區太小吧 新版的boot.img 5.5MB 舊版的 5MB 然後我解開ramdisk 比對一下 舊版的ROM是支援 MTD yaffs2 格式 新版的ROM是支援 EMMC ext4 格式 Ramdisk 新版的啟動參數都是 ext4 的 感覺是有點可能,只是可能ROM要大改。 或者是舊版的 MTD 可以重新分割 ROM 重新分配/boot分割區大小 然後可以格式化為ext4格式 然後移植驅動 再不然就是拿原始碼自己修改編譯。 安卓自由是自由,但是真的搞起來,比IOS還麻煩。編譯也是問題,平台的選擇,只能在舊版OS下搞,Ubuntu 12.04 / Linux mint 13 / Mac OS X Lion、JDK 6 |
良心建議 不要浪費時間....
1. core driver, 通常原廠bsp 出來kernel 都會固定在某版 除非佛心來要升版 因為連它們搞也要花很多$$ & 時間 2. 周邊driver, po 的動就可以去晶片廠上班了...版本不同常看到一堆interface 大改 3. android user space code, 通常也要動, 如OOM control, PWM ... |
我雖然不是做Android這一行的人,但至少我算一個Linux 從業人員,裡面有些東西並不是
換過Kernel就一切OK !! 2.6 到 3.x版 , 我換過CentOS 6.5的 Kernel , 自己Compile來更換,還算好換.... 但有些問題就不是僅僅只有如此 比如說,我曾經做過2.0版的Kernel 要升級到 2.4版的Kernel , 在當時不是直接換Kernel就好 主要的Libc 也要升級 , 升級完成後, gcc也要升級,不然2.6Kernel無法Compile !! 就這樣環環相扣,搞到後來,很多要用到的Library都要一起升級,我評估了一下,根本就是整個 OS都要升級 , 這是一個大工程 , 我沒有時間去做一個一個Compile工作 , 最後重新download 新的Linux Distribution 來安裝解決!! 至少我需要的一些Library 就重新Compile就好 不需要搞到整個OS都要重新Compile .... 相信Android大概也會是差不多的狀況吧..... :think: |
既然刷第三方ROM了 只要找到適合的KERNEL當然可以刷 XDA上找一下
|
引用:
我目前是把它當成ARM版的 Linux 看,確實核心升級核心的依賴也要升級。 如果要重新編譯 就等於編譯 ARM Linux 核心 然後在編譯一些ARM Linux Kernnel 依賴 Linux 不是核心歸核心 然後還有一個 BASE + 一些GUN的工具 核心的依賴不一定要把 BASE 全換 感覺如果要改,重新編譯好像比較好。 至於驅動問題這是我不太了解的地方,是不是也像Linux那樣抓相應的驅動原始碼來編譯ARM版的就可以了? 也不能像 lspci 看是哪些硬體。 想升級的動機是因為有些 binary 應用沒辦法用。 因為是舊機了,想廢物利用,因為有4跟5的ROM可刷,所以想升級看看。 只拿來跑終端機指令工具。 |
引用:
如果確定是binary application的確會很麻煩,因為各家系統的device driver沒有open source 當初怎麼compile的參數等等之類的資料沒有的話,就很難產生出新版本bin app & driver 這就是各家手機軟體難以維護的原因 , 就讓它去吧!! 別去做這種殺害大腦細胞的事了... |
引用:
想了一下還是讓它去好了 那以 2.6.38 的 ARM 核心為基礎,如果我要編譯給安卓用的 binary 假如我要編譯 gun工具給安卓 例如: bash 或者 coreutils, 電腦的 OS 裝 Linux 核心也一樣要 2.6.38 版嗎? 安卓 SDK 的原始碼就不用了吧? |
Kernel本身就是driver集合體
100%被硬體架構所依賴 Linux雖然是Open Source Code 但是SOC很多H/W Device Driver卻是封閉不外流的 從2.6升級到3.x 4.x絕對不只是Linux進版 很多Device Driver也要跟著進版 如果連原廠SDK都不願意做這件事的話 那更不用說系統廠了 :cool: |
所有的時間均為GMT +8。 現在的時間是04:18 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2024。