使用Remix OS作为X86 Android系统开发OS

源起

在开发过程中,有需要X86上面的方案,因为Nexus Player还没有到,身边又没有其他Intel Android设备,想到PC就是X86(以及X86_64),为了赶时间,因此决定使用笔记本(MacBook Pro)来安装一个Android X86系统,用来开发。

根据记忆,下载了Remix OS并安装到了U盘,启动,发现确实可以正常使用蓝牙连接BLE Periphiral,因此决定就用这个系统。


squashfs的解压

这篇博客开始是使用X86_64,后面是X86版本的OS,这两者的squashfs的压缩方式不一样,32Bit的OS需要在官网切换到English之后才可以选择下载。

Ubuntu 14.04中的unsquashfs版本为4.2,而且支持的compression只有gzip等几种:

$ unsquashfs -version
unsquashfs version 4.2-git (2013/03/13)
copyright (C) 2013 Phillip Lougher <phillip@squashfs.org.uk>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2,
or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

unsquashfs system.sfs
Filesystem uses unknown compression, this is unsupported by this version
Decompressors available:
	gzip
	lzo
	xz

可以看到不支持lz4,lzma,所以需要自己去下载最新的来编译。可以参考:

http://unix.stackexchange.com/questions/90323/how-to-use-unsquashfs-with-lzma


具体而言就是下载解压,然后修改Makefile将comment掉的各种support uncomment,然后安装对应的lib,例如:

sudo apt-get install liblzo2-dev

sudo apt-get install liblz4-dev

 sudo apt-get install liblzma-dev

然后就可以解压了:

 ./unsquashfs /media/hexiongjun/REMIXOSSYS/system.sfs 
Parallel unsquashfs: Using 8 processors
1 inodes (20480 blocks) to write

[==========================================================================================================================================================================================\] 20480/20480 100%

created 1 files
created 1 directories
created 0 symlinks
created 0 devices
created 0 fifos



文件组织安排

U盘个分为了三个可mount分区



然后有一个启动分区,其实这个是EFI启动文件放置位置:




这三个分区的内容如下

一个OS分区放着系统文件

一个data分区最后会mount到data分区



还有一个启动的分区,见前面fdisk结果



可以看到这里面有一个ramdisk.img,这个就是X86 android的init ramdisk了,因此如果我们需要更改一些权限或者init.rc那么就需要更改文件。


ramdisk.img的更改

按照普通的cpio init ramdisk的修改方式即可,常用命令如下:

repack:

find . | cpio -o -c | gzip  > ../ramdisk_shm1.img

find . |  cpio -H newc -o | gzip > ../uramdisk.cpio.gz


extrack:

mkdir ram && cd ram && gunzip -c ../ramdisk.img | cpio -i

system分区的修改

这个比较麻烦,因为不是接ext4 fs,而是一个system.sfs文件,这个文件是Squashfs的文件,然后里面是ext4的system.img



因此第一步我们需要使用对应的工具解包,我们不能直接mount,因为mount的话是ro的,无法rw:



然后产生一个squashfs-root的目录,这个目录里面就是system.img,然后我们mount起来就可以修改文件内容了。

修改完成后还需要重新制作成squashfs文件,注意里面的blocksize为从file信息获取的:



然后就可以使用了。


关于权限

selinux的权限问题

新版本的OS中使用getenforece查看发现是disable的,从cmdline中也可以看出。

su的权限问题

默认代码有su,所以也不是问题


工具

安装termux,然后apt update,就可以类似Ubuntu一样,使用apt install vim类似的命令来安装各种软件包了,非常方便。

X64 VS X32的两套库

在64Bit上面有两套库了:



参考:

http://forum.xda-developers.com/remix/remix-os/remix-os-installation-rooting-t3293769

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值