安卓与Linux有什么关系

安卓与Linux有什么关系,第1张

我 觉得小白去研究这个问题还是难度太大了 是这样 安卓 是在 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软件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10100648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存