Android对Linux做了哪些改动

作者: 极客工坊Oleen分类: 计算机技术 发布时间: 2021-12-19 10:00:05 浏览:13536 次

Android对Linux做了哪些改动

靠谱的一号网友:
up主,可以请教一下关于编译内核的问题吗?就是我想尝试编译小米手机的内核,我在github找到了小米官方的内核仓库,也找到了我的对应机型代码,但只知道是安卓10版本,不知道具体是miui几。这有影响吗?https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/cepheus-q-oss,这个就是我的手机内核代码,是不是不用管miui版本?

【回复】回复 @还在豁沙子的小切诺基 :在手机上安装 ubuntu 或者 ARCH 环境 chroot, proot 关于这个 termux 下安装有许多方法 然后 安装 gcc和c++,bc , 等 不需要指定 编译器 make 配置文件 然后 make -j8 lineageOS 成功启动 没有什么特殊的bug 只是开机 他提醒有个提醒
【回复】安卓大版本对得上一般来说没有问题,一般小米会保证兼容性,出了不兼容的改动会更新源码(不一定会及时更新,也有可能在其他机型的仓库里更新) 另外小米有一些私有的东西不会开源,在MIUI中可能导致屏下指纹或者一些cpu升频/游戏模式有关的驱动不可用[思考]
【回复】回复 @还在豁沙子的小切诺基 :他只编译了内核,835差不多半小时[脱单doge]
拍拍小站:
比较好奇网上那些ui是怎么移植的,另外像android文件系统,ab分区,编译系统也是比较好奇。我是做bsp的,对ap侧framework以上很陌生

【回复】UI的移植很多是厂家自己定制了自己的系统应用,然后根据需要内置到不同分区,决定是否可卸载,是否可恢复等,很多UI系统主要涉及launcher桌面各种组件二次开发移植,systemUI的改动,settings的重构和移植等,当然也会有配合UI的framework里面的新开发的组件的补丁或者模块移植。往往这些需要移植的东西都会做成patch或者目录结构加编译配置文件组合的形式,需要的时候可以把一整套移植到另一个版本或者平台。
【回复】Android文件系统 表观上可以初步研究下init文件。编译系统,通常我们常说的编译树,其实是个比较庞大体系,建议可以看看 《构建嵌入式Android系统》这本书籍。另外对于怎么编译一个模块,例如怎么编译一个apk,Bin亦或带so和jar的apk等可以参考Android源代码各个目录层级的模块编译脚本写法,所以一定程度上需要我们对Android目录结构,常见组件目录要很熟悉,不然很难找到参考。
【回复】回复 @荒野极客Oleen :然后通过替换部分驱动等文件,来使得衣服尽量得体[滑稽]
肥皂水泡方便面:
那么为甚么x86平台都可以跑Windows不用适配,而arm设备就不能直接运行谷歌的原生Android呢。

【回复】一个系统要跑起来,最关键的就两部分,启动(boot)和驱动。x86的启动就是bios和uefi,就是老ibm和intel的一家之言,cpu/主板全写死了这些逻辑,windows顺着接入就行了;驱动的话windows有很强硬的适配标准,大家也会主动去顺着适配,所以反观到win本身需要适配的东西就很少了; arm平台没有强制的boot规则,以前大家用bootloader,现在大家跟着用intel的uefi,驱动规则linux也一直玩的很糟没有硬性规则,根本没法即插即用,还是要手机厂自己稍微改一改编译一遍。 这就是为啥x86跑windows不需要适配而arm总要适配的原因。因为各家boot规则都不同,驱动也五花八门
【回复】Windows都有去适配好,包括不定期更新。任何系统包括苹果系统,M芯片发布出来时候也是需要适配的,20年时候问题很多的M芯片MacBook就是没有适配好。
【回复】是因为微软无时无刻在适配
不死骨灰:
那么问题来了,这些专有驱动开源吗,并入linux不行吗[doge]

【回复】不知道。不过Linux运行安卓程序比微软运行简单多了。
【回复】binder不就进入了主线内核么
【回复】专有驱动都开源,而且还有个特点是基本和硬件无关。
可爱喵喵星人:
uname -a显示Linux,在rec输显示是一个纯Linux

LOYALTOZOU:
我拿小米10的源码编译内核运行Linux,cmdline也写好了,为啥启动不了

syzmeimwi:
很好的视频,让刚入门人有了系统认识

欧尼酱的春天:
安卓魔改了图形化可操作界面,算不算改动。

开灰机的灰机:
up,这个是基于哪个android版本分析的呀?

【回复】暂时没有区分版本,后面给大家分享细节时候我会用5.0 6.0 8.0 和10来分析。着重用10.0
你在一起432:
up问题来了为什么安卓不像liunx系统那样安装应用不用依赖包[doge]

【回复】都有依赖。Android应用要想跑起来是需要依赖系统很多framework中的组件的(jar包)
【回复】安卓应用里面是带依赖的
80765160644_bili:
安卓专有驱动?是内核里还是什么地方

【回复】回复 @80765160644_bili :可以这样认为[藏狐]
【回复】回复 @荒野极客Oleen :我做内核开发的,没见过安卓专用驱动呀,是硬件无关的?

嵌入式 android 编程开发

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!