使用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等几种:

 

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

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

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

 

 

然后就可以解压了:

 

文件组织安排

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



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


这三个分区的内容如下

一个OS分区放着系统文件

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


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


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

ramdisk.img的更改

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

repack:

extrack:

 

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

Leave a Reply

Your email address will not be published. Required fields are marked *