TDbeta

 找回密码
 注册账号

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

查看: 996|回复: 7

[实用教程] CM10.1移植Ubuntu

[复制链接]

该用户从未签到

发表于 2015-3-11 10:43:39 | 显示全部楼层 |阅读模式
本教程适合有一定移植基础的人去操作,新手不建议折腾。

本教程在三星S3和HTC ONE X上测试基本成功,One X开机之后屏幕黑死,但是可以链接ADB,可以链接刷机精灵等第三方软件,查询XDA之后得出Ubuntu底包在One X上确实存在开机黑屏,所以理论也算是移植开机成功。

移植前提要求必须机型有CM10.1(安卓4.2.1)要求电脑有文件对比工具,以及厨房等必备开发工具。(seoul_sz说明:厨房--Android Kitchen)

其次必须知道的是,Ubuntu开发者预览版,目前就算移植到手机上,也只是类似系统模拟器一样的原始版本,不具备实际使用功能,仅供体验试玩。

最后Ubuntu的运作原理:使用CM10.1内核,库来加载预先刷入Data区的Ubuntu系统镜像。

也许这么理解可能不太实际,但是至少目前确实是这样的。

操作过程很简单,如果机型能兼容Ubuntu底包数据开机,理论上都能正常进入系统,否则就只能等官方再次开源,或者基于源代码编译(官方教程不靠谱)。

以我移植的9300Ubuntu和官方的CM10.1对比得出,CM10.1的system/app,system/fonts和system/framework,这3个目录不会被Ubuntu用到,删除。
在system/bin存在3个Ubuntu必要文件:

代码:
\system\bin\ubuntu_chroot
\system\bin\ubuntuappmanager
\system\bin\uchroot


etc文件夹在移植过程中完全可以过份阉割,因为Ubuntu并不会用到这些,删除:
代码:
\system\etc\bash
\system\etc\nano
\system\etc\ppp
\system\etc\ssh
\system\etc\terminfo
\system\etc\updatecmds


system/lib不需要做任何更改,你也可以理解为Ubuntu并不需要这些,因为有关Ubuntu的文件只有\system\lib\libubuntu_application_api.so,它就像一个系统Apk一样存在,运行。

system/xbin目录里面,根本都没有会被Ubuntu调用的文件。但是为了保证系统正常运行,需要保留基本文件:

代码:
\system\xbin\add-property-tag
\system\xbin\busybox
\system\xbin\check-lost+found
\system\xbin\dhdutil
\system\xbin\sqlite3
\system\xbin\su

以上文件都没具体作用了,至少在目前是这样,对CM10.1底包做深度阉割之后,可能大小不足100M了。

接下来需要修改刷机脚本:

默认的都不要管,在unmount("/system");之前添加刷入Ubuntu到data区的命令就行:

代码:
run_program("/sbin/mount","/data");
package_extract_file("ubuntu-i9300-myhk.tar.gz", "/data/ubuntu-myhk.tar.gz");
delete_recursive("/data/ubuntu_myhk_tmp_extract");
run_program("/sbin/mkdir", "/data/ubuntu_myhk_tmp_extract");
run_program("/sbin/tar", "--numeric-owner", "-xzf", "/data/ubuntu-myhk.tar.gz", "-C", "/data/ubuntu_myhk_tmp_extract");
delete_recursive("/data/ubuntu");
run_program("/sbin/mv", "/data/ubuntu_myhk_tmp_extract/binary/casper/filesystem.dir", "/data/ubuntu");
delete("/data/ubuntu-myhk.tar.gz");
delete_recursive("/data/ubuntu_myhk_tmp_extract");
unmount("/data");
run_program("/sbin/sync");


ubuntu-i9300-myhk.tar.gz这个文件是所有机型都通用,路径和BOOT.img在一起,原始文件是:quantal-preinstalled-phablet-armhf.tar.gz,可以在包里直接提取就行。或者百度一下,你就知道。。

最后我们需要对内核进行修改,简单的修改几句命令就可以使内核引导Ubuntu...

代码:
service sensorservice /system/bin/sensorservice
class main
user system
group graphics audio camera inet net_bt net_bt_admin net_bw_acct drmrpc

service ubuntuappmanager /system/bin/ubuntuappmanager
class main

service ubuntu_chroot /system/bin/ubuntu_chroot
class main
oneshot


修改完内核,就可以打包刷机测试,然后找到自己机器的细节错误,慢慢修改。本教程适合有一定移植基础的人去操作,新手不建议折腾。


楼主其他热门帖
heatlevelFlyme 5.1.12.23R beta
heatlevel华为mate s 发布会直播
heatlevel三代
heatleveloppo r7手机铃声
heatlevelFlyme4.5一键安装xp框架、一键修改字体状态栏等.
heatlevel适用于5.0/1的文件管理
heatlevellbe极速版来袭
heatlevelmokee最新更新(2015.6.04)

该用户从未签到

发表于 2015-3-12 01:18:48 来自WAP版 | 显示全部楼层
看起来好复杂啊~
回复 支持 7 反对 4

使用道具 举报

  • TA的每日心情
    开心
    2016-1-13 07:48
  • 签到天数: 91 天

    [LV.6]富有美誉

    发表于 2015-3-11 10:46:06 来自WAP版 | 显示全部楼层
    万火留,不懂帮顶
    回复 支持 6 反对 5

    使用道具 举报

  • TA的每日心情
    开心
    2015-10-27 15:43
  • 签到天数: 25 天

    [LV.4]小有名气

    发表于 2015-3-12 00:56:36 来自WAP版 | 显示全部楼层
    支持一个!!!顶!!!!
    回复 支持 6 反对 2

    使用道具 举报

  • TA的每日心情
    呆萌
    2016-1-11 17:09
  • 签到天数: 35 天

    [LV.5]颇具盛名

    发表于 2015-3-11 11:44:04 | 显示全部楼层
    教程贴,一定要顶起来。
    回复 支持 7 反对 1

    使用道具 举报

    关闭

    站长推荐上一条 /1 下一条

    运维支持|站点地图|小黑屋|Archiver|TDbeta ( 京ICP备12048885号-3 )

    GMT+8, 2017-2-25 06:04 , Processed in 0.171230 second(s), 43 queries , Gzip On.

    Powered by Discuz! X3.3

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表