我 觉得小白去研究这个问题还是难度太大了 是这样 安卓 是在 linux的基础上添加了一个应用夹层 所有符合安卓认可的liux系统程序才能运行 也就是是说 要让linux的软件在安卓上运行 必须要求 更改口令以符合 安卓的api接口所以 将其他linux的软件在安卓上运行无异于一种系统移植了 也就是说 安卓的开源算是一种伪开源 不会让一般的程序创作者接触到安卓底层的东西 而只能通过夹层 和系统交互 不知道我这样说你是否明白 满不满意 更深入的东西的话 不太好说了 我也喜欢研究这些乱七八糟的 要是有兴趣交流吧
之前的分析android和标准linux在编译器的差别,那么是标准编译器编译的bin文件是否可以在andorid上运行的。
下面一个android bin为例,通过readelf -l命令,
再看标准的linux加载器
通过INTERP 段的区别,android使用linker程序,而标准Linux使用的是ld-linuxso这个so,内核分析它的interp段,也就是linker或者ld-linuxso,将动态连接器映射到进程的地址空间,然后将控制权交给动态链接。
将arm-linux-gnueabi下的ld-linuxso3和libcso6 copy到android平台的/lib下
root@sp9820e_2h10:/lib # ls
ld-linuxso3
libcso6
运行helloworld,添加/lib到LD_LIBRARY_PATH,运行成功
手机必须要Root,没有的度娘解决。
首先安装 终端模拟器 软件,稍后有用,度娘一下搞定了。
然后是Busybox,这是一款高度集成的Linux小工具集合,也很容易找到,安装好就行。
安装Android VNC ,用于连接远程桌面。
手机内核必须支持loop和ext2文件系统,实践证明ext3,ext4也是可以的。
(1)检验是否支持loop设备
打开 终端模拟器,键入命令 ls /dev/block看是否有loopN设备,N是数字。
(2)ext支持不好确定,多数安卓都支持,毕竟是Linux系统出身嘛,后续交代。
由于sourceforge服务器在地球的另一面的美国,所以访问速度自然是不用吐槽的啦,不过还好镜像服务器还是不少的,可以百度搜索sorceforge镜像
选择你喜欢用的系统下载下来吧。
这里要下载两个文件
(1)、镜像文件
有三个版本,完整版(Large)、精简版(smalll)、核心版(core)
可以在服务器相应文件夹下找到zip文件,大小约500MB,解压出来2GB左右。
注:完整版和精简版有桌面程序,核心版只有命令行界面
(2)、脚本文件
在相应Linux发行版文件夹里面找到,带script的zip文件就是了,也下载下来。
END
二、后续 *** 作
下载镜像和脚本文件之后在/sdcard上创建一个文件夹,名字与相应的linux发行版名字相同,将下载到的zip文件解压到此处,镜像和脚本都要解压到这个文件夹。
比如笔者的Ubuntu 1004就是在/sdcard上创建一个名为ubuntu的文件夹,然后把ubuntuimg和ubuntush解压到/sdcard/ubuntu/即可。
然后就是最重要的一步修改脚本了,许多人不成功就是这里没有修改了。
先看一下脚本文件吧!所有的脚本都是差不多的欧!
如图
找到图上第三行的位置,
mount -o remount,rw /dev/block/mmcblk0p5 /system
我们看到这是挂载/system为 可写 状态,但是这里却是挂载的固定是'/dev/block/mmcblk0p5',这肿么可以??要知道安卓的硬件是遍地开花、各式各样都有,/system的所在的设备也各不相同,比如我的是在/dev/block/mmcblk0p19,以前用的是mmcblk0p12,根本不可能统一的
所以我们需要找到/system究竟对应的是那个分区。
方法:给个比较可靠的方法吧,下载一个和你的手机相对应的刷机包,打开\META-INF\com\google\android\updater-script文件,搜索"/dev/block"关键字,找到一条与system相关的一行,看到了这样一行
format("ext4", "EMMC", "/dev/block/platform/msm_sdcc1/by-name/system", "0", "/system");
那个带/dev/block的那个就是你的system分区,用它来替换原来脚本的那一个 /dev/block/mmcblk0p5吧!
我的修改结果是
mount -o remount,rw /dev/block/platform/msm_sdcc1/by-name/system /system
这里因人而异,不要照搬哦!
然后打开终端模拟器,测试一下
1输入 su 并回车,获取root权限
2输入 cd /sdcard/ubuntu 进入脚本文件所在目录,这里ubuntu替换你创建的文件夹名字
3输入 sh ubuntush ,运行ubuntu系统
到这里理论上是应该成功了
出现图一这样的情况时就要输入分辨率了,我的是1280x720,比较常用的还有800x600等
输入1280x720 ,回车
等待出现 root@localhost:/# 你的Linux已经启动成功啦
终端模拟器以经连接到ubuntu的终端了
但是没有桌面让我们怎样愉快的玩耍呀?
所以打开AndroidVNC,配置一下 参数
Nickname:随便写
Password :你的Linux名称,我的是ubuntu
Address : 因为是本机运行,所以写 localhost 或者 127001
Port : 默认5900
Username:root
Color Format : 24-color (4bpp)
然后点击左上角Connect即可
然后就看见了我们期待已久的Ubuntu界面里
但是还有个问题,不支持中文是一个蛋疼的问题啊
所以在安卓系统上找个中文ttf(直接复制/system/fonts/DroidSansFallbackttf也是可以的)放到/sdcard
进Linux系统后复制字体到
/usr/share/fonts/truetype/ttf-dejavu
重启就能再见到亲切的中文了!
在Linux界面下
1音量键相当于键盘的上下箭头↑↓
2双指可以缩放界面,双指滑动可以滚屏
3按下菜单键-send 可以 触发特殊键 比如 ctrl + alt + delete 关机重启
4菜单键- Input Mode 可以选择 鼠标 *** 作方式 , 推荐选择touchPad 把触屏当触摸板用
一、下载android sdk
下载SDK,下载地址:>
以上就是关于安卓与Linux有什么关系全部的内容,包括:安卓与Linux有什么关系、如何再linux下运行apk程序、linux container 安装,或者说如何在android平台上安装linux软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)