【折腾手机】一加6T刷机postmarketOS经历和体验

news2024/11/21 1:41:42

写在前面

到目前为止,我已经花了非常多的时间去学习和了解x86架构和RISC-V架构,对它们的指令集编程、指令格式的设计、编译套件的使用都亲自去体会和实践过,学到了很多的东西。但是对于离我们最近的arm架构却了解甚少。为什么说离我们最近呢,那是因为总是捧着手机躺在床上刷视频,那离我们确实够近的。所以探究arm架构已经arm Linux是非常有必要的,在这篇文章开始写之前的一年,我已经进行了 bl锁,刷机,root ,刷模块,改调度等一系列操作。其实Android玩机真的挺有趣的,一旦获取到root权限,可以做很多操作,可以加深对Android系统和Linux内核的理解。但是我认为这样还不够,Android还不够自由,我们完全可以直接在手机上跑Linux.但是我们同时必须要有心理准备 -- 即Linux Phone的软件生态肯定是远远不如Android的,你在Android上能做到的很多很容易的操作,在Linux Phone上会觉得非常困难,并且会缺少很多基础功能,还会出现兼容性问题、内核缺少模块等一系列难以解决的问题,可以说局限性是很大的。最重要的是,它的实用性其实并不是太多,你拿来做移动端桌面确实是不太好用,不过拿来学习Arm和Linux已经很足够了,你也可以拿来当服务器用。就是说你得会折腾以及想折腾,否则这个刷机就不适合你了。

在进行刷机之前,你需要掌握fastbot和adb的基本命令和bootload、recovery的那一套,最好是自己已经刷过了Android系统,这样的话基本上就没什么难度了。如果你不是很清楚刷机流程,可以看一下这个视频。

极客湾刷机教程

把这个视频看完,多看几遍,至少这个解开bl锁是必须学会的。只有解开bl锁你才能对你的手机进行底层操作,这是厂家规定的。

在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

在解开BL锁之前,用户是无法自由进行刷机操作和ROOT操作的。部分手机官方为了保证手机的安全,为手机设置了BL锁,在BL锁未解的情况下,用户是不能自行刷机或获取ROOT权限的。

这里温馨提示一下,解开bl锁之后相当于进行了“恢复出厂设置”操作,你的所有数据都会消失。所以在正式刷机之前你必须保存数据,除非你和我一样把它作为备用机,数据无所谓。

同时你需要知道的是,你不能把手机当成是x86平台的电脑,x86平台安装系统非常简单,只要明确UEFI BIOS还是latency BIOS,然后使用ISO制作的启动盘安装就好了。手机其实是属于嵌入式设备,你要把它当成是嵌入式看待,你的内核想要具备哪些功能也不是你自己说了算而是内核上游以及设备树提供了哪些代码。可以说,你的Linux Phone具备哪些能力是在构建的时候就已经大体上确定了,嵌入式都是定制的系统。

1、选择

在这样的前提下,我选择了postmarketOS这个Linux ,因为它对Linux Phone的支持最好,软件生态也做的比较多,其他Linux发行版要么不提供Linux Phone,要么就是软件生态不行,基础功能都没有。并且网络上关于postmarketOS的教程也是颇多的,你可以多了解一下。postmarketOS还提供了多个桌面环境,你可以选择其中的一个,或者全部试一遍,这也是一个好处。

postmarketOS提供了四个桌面环境,我们可以挨个尝试过去,看看哪一个最好。

2、实验用到的环境

本篇文章刷机用到的桌面端系统还是Fedora ,因为在刷机前你需要解bl锁,这是需要adb和fastboot命令的,其实你用什么系统都行,只要提供这两个命令。

你可以用淘汰掉的老手机,我的话就在闲鱼上淘了一个一加6T,不用太贵,越便宜越好,因为Linux Phone的实用性确实不高,一加6T的SoC是骁龙845 ,我会在后面说明为什么选择这一块SoC来刷机。而且它的配置是8+128 ,如果想流畅一点可以选择8GB内存的,不过鉴于它的实用性不高,大家买便宜一点的就行,到时候如果放着吃灰就不会亏太多。

3、刷机前体验

由于我已经刷好postmarketOS并且体验一段时间了,为了增加读者的阅读兴趣,我先在这里放几张截图,大家可以先“脑补”体验一下。

1.GNOME MOBILE

以上是GNOME mobile桌面,和桌面GNOME是很像的,它对移动端的适配还算好,但其实这个桌面环境体验下来还是会觉得有点难受,特别是在打开自动亮度之后,一直调节,晃瞎你的眼。

这里我用我的主力机去拍我的备用机,GNOME mobile桌面是可以截图的,只是截图之后发到我的电脑会比较麻烦,有线也传不了,所以我就用手机拍摄了,大家见谅。

这样体验下来其实比较难受,它完全不如Android ,不过也能看出来,GNOME mobile已经很努力在适配了,很多地方都在向Android看齐。

由于腾讯linuxqq积极适配Linux端,提供了多个架构的版本,因此是可以在这上面跑linuxqq的,就是体验不怎么样。

用ssh连接之后

虽然说桌面体验不怎么样,不过你可以使用ssh去连接,这样就获得了一个体验正常的终端。不过如果仅仅是想获得终端体验的话,其实它还不如Qemu虚拟机来得方便一些。所以说如果你有合适的旧手机拿来刷Linux还是比较合适的;如果你买一个的话,感觉有点亏,除非拿来做服务器。

2. KDE

KDE这边看起来是比GNOME好看一点,但是实际的体验我觉得没有GNOME好,很多地方的输出都会糊掉,让人眼花缭乱的。因为我在KDE没有待多久,我只留下了这两张图片。


一、基础知识

1、刷机相关的知识

其实刷Linux Phone的本质和普通的刷机是一样的,都是在bootloader里使用fastboot命令对系统分区进行刷写,你需要刷的是boot分区和userdata或者system分区,这和一般的嵌入式刷系统是一样的,只不过你不需要拆开手机去点击什么按钮。各厂家都有自己的方式让手机开机的时候停留在bootloader模式。也就是进入fastboot模式,这个步骤在极客湾的刷机视频里说的已经很明确了。

1、adb命令

我们现在还没有正式开始刷机,因此现在的手机上跑的还是Android操作系统,adb是安卓调试桥,你必须掌握一些命令才好玩机。等你刷成了Linux Phone之后你就不需要adb了,但目前还是需要的。

在使用adb之前,你需要先打开你的手机的开发者模式,然后在开发者模式里打开USB调试

连续点击五次版本号,就能打开开发者模式。无论你是哪一个版本的Android,都可以这样去打开。

然后打开USB调试,这样我们才能使用adb命令。

打开之后回到Fedora,安装adb命令,fastboot也在这个包里。

sudo dnf install android-tools

安装好了之后,把你的手机连接到电脑。


2、postmarketOS相关知识

在刷入postmarketOS前我们需要对这个系统进行一定的了解,这样进入系统后我们才知道要做什么。

postmarketOS是一个专门为手机准备的Linux发行版,它的设计初衷就是为手机而生,是基于Alpine Linux开发的。可以说,只要你掌握了Alpine Linux,那么postmarketOS也就会用了。

Alpine Linux概述

这一篇文章写的非常好,其中有几点你需要注意一下:

  1. 使用apk作为包管理器,这里的apk不是安装的apk安装包而是Alpine Linux的包管理器名
  2. OpenRC 作为初始化(init)系统,也就是不使用systemd,不存在systemctl命令
  3. 基于musl libc和BusyBox而不是glibc

从上面几个特点可以看出来,postmarketOS和Alpine Linux都是以简洁、小巧、嵌入式为特点设计的。是能小就小,使用了openRC 和 musl这意味着使用体验和你平时使用的systemd系统完全不同,一定要注意一下。

相信大家也看出来了,为什么我选择了postmarketOS,根本原因就是它专门为手机设计,做了很多移动端的适配,这是一个非常大的优势,是其他Linux发行版不具有的。据说Fedora项目组也已经入局制作移动端适配的Fedora了,但是也不知道何年何月才会发布出来。

postmarketOS并不是任何一台手机都能刷入的,并且不同手机的适配情况也不同,因此postmarketOS官方给出了一张表格,来说明哪些手机的支持好、哪些手机的支持不好、哪些手机可以刷入pmOS。为了简单称呼,在此之后的postmarketOS我都叫做pm.

pm支持的设备

Phones

DeviceCodenameArchitectureUSB NetFlashingTouchScreenWifiFDEBattery3DIMUAudioBluetoothCameraGPSMobile DataSMSCallsUSB-OTGNFC
BQ Aquaris X5bq-paellaAArch64YYYYYYYYYYYYYYYY-
Fairphone 4fairphone-fp4AArch64YYYYYYNYNNYNNNYPNN
Lenovo A6000lenovo-a6000AArch64YYYYYYYYYYYYYY--
Lenovo A6010lenovo-a6010AArch64YYYYYYPYYYYYYYP-
LG Optimus Vulg-p895ARMv7YYYYYYYPYYYPY
Motorola Moto G4 Playmotorola-harpiaAArch64YYYYYYPYYYYNYYYYP
Nokia N900nokia-n900ARMv7YNYYYYYNYYNPYYYP--
OnePlus 6oneplus-enchiladaAArch64YYYYYYYYYYYNPYYPPN
OnePlus 6Toneplus-fajitaAArch64YYYYYYYYYYYNPYYPPN
PINE64 PinePhone Propine64-pinephoneproAArch64Y-YYYYPYYYYPYYYYN-
Samsung Galaxy A3 (2015)samsung-a3AArch64YYYPYYYYYYYYYYYYY
Samsung Galaxy A5samsung-a5AArch64YYYPYYYYYYYNYYYYYY
Samsung Galaxy E7samsung-e7ARMv7YYYPYYYYPYYNYYYYY
Samsung Galaxy Grand Maxsamsung-grandmaxARMv7YYYYYYYYPYYNYYYY-
Samsung Galaxy S IIIsamsung-m0ARMv7PYYYYYYYYPPNNNN
Samsung Galaxy S4 Mini Value Editionsamsung-serranoveARMv7YYYPYYYP-YYNYYYY--
SHIFT SHIFT6mqshift-axolotlAArch64YYYYYYYYYYYNNYYYNN
Wileyfox Swiftwileyfox-cracklingAArch64YYYYYYYYYYYYYYYP-
Xiaomi Mi A1xiaomi-tissotAArch64YYYYYYYYYYYNPPYPY-
Xiaomi Mi A2 Litexiaomi-daisyAArch64YYYYYYYYYYYPPPYPY-
Xiaomi Mi Note 2xiaomi-scorpioAArch64YYYYYPPYNPYPNNPNYY
Xiaomi Pocophone F1 / POCO F1xiaomi-berylliumAArch64YYYYYYPYYYYNPYYYN-
Xiaomi Redmi 2xiaomi-wt88047AArch64YYYYYYYYYYYNYYYYY-
Xiaomi Redmi 4 Primexiaomi-markwAArch64YYYYYNYYYYYPPPYYY-
Xiaomi Redmi 5 Plusxiaomi-vinceAArch64YYYYYYYYYPYPPPYPY-
Xiaomi Redmi Note 4 / 4Xxiaomi-midoAArch64YYYYYYYYYYYPPPYYY-
Xiaomi Redmi S2 / Redmi Y2xiaomi-yslAArch64YYYYYYYYYYYPPPYYY-

实际上能用来刷机的手机是非常少了,也就那么几个,而且很多功能都不支持。

表格中,Y表示完全支持,N表示完全不支持,P表示部分支持。

其中支持程度比较高并且很容易获取到的就是一加6和一加6T.它们的SoC都是骁龙845.这是一块非常特殊的Soc.具体特殊在哪里呢?

这块SoC连Windows11都能刷,那么给刷成Linux也是非常合理的吧。


二、开始刷机

1、使用官方预构建的镜像

使用官方预构建的镜像刷机是非常简单容易的,但是经过我的试验,我是失败的,也就是说我只能通过第二种方法刷入postmarketOS.


2、自己构建

这种方法最稳妥,只要你的手机被postmarketOS支持,那么就是可以刷入的。缺点就是会占用比较大的磁盘空间,你需要有心理准备。


三、进入postmarketOS

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1881529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索数据赋能的未来趋势:嵌入式BI技术的挑战与突破

数据分析能力越来越成为消费者和企业的必备品应用程序,复杂程度各不相同,从简单地一个网页或门户上托管一个可视化或仪表板,到在一个云服务上实现数据探索、建模、报告和可视化创建的应用程序。BI的实现方式越来越多,无论规模大小…

自动雪深传感器的类型

TH-XL2随着科技的飞速发展,气象监测技术也在不断进步。在降雪天气频发的冬季,雪深数据对于保障道路交通、农业生产和电力供应等具有至关重要的作用。自动雪深传感器作为气象监测的重要工具,其类型多样、功能各异,为气象数据的准确…

国产分布式数据库灾备高可用实现

最近在进行核心业务系统的切换演练测试,就在想一个最佳的分布式数据库高可用部署方案是如何保证数据不丢、系统可用的,做到故障时候可切换、可回切,并且业务数据的一致性。本文简要介绍了OceanBase数据库和GoldenDB数据库在灾备高可用的部署方…

leetCode-hot100-动态规划专题

动态规划 动态规划定义动态规划的核心思想动态规划的基本特征动态规划的基本思路例题322.零钱兑换53.最大子数组和72.编辑距离139.单词拆分62.不同路径63.不同路径Ⅱ64.最小路径和70.爬楼梯121.买卖股票的最佳时机152.乘积最大子数组 动态规划定义 动态规划(Dynami…

嫦娥六号成功带回月球背面土壤,嫦娥七号整装待发,2030年前实现载人登月!

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 嫦娥六号圆满成功 嫦娥六号任务是中国探月工程的一次重大成功,探测器于5月3日在中国文昌航天发射场发射升空并进入地月转移轨道。经…

【SQL】已解决:SQL分组去重并合并相同数据

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:SQL分组去重并合并相同数据 在数据库操作中,数据的分组、去重以及合并是常见需求。然而,初学者在编写SQL语句时,可能会遇到一…

2024华为OD机试真题- 电脑病毒感染-(C++/Python)-C卷D卷-200分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。 其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果…

整合、速通 版本控制器-->Git 的实际应用

目录 版本控制器 -- Git1、Git 和 SVN 的区别2、Git 的卸载和安装2-1:Git 卸载1、先查下原本的Git版本2、删除环境变量3、控制面板卸载 Git 2-2:Git 下载安装1、官网下载2、详细安装步骤3、安装成功展示 3、Git 基础知识3-1:基本的 Linux 命令…

逆向开发环境准备

JDK安装 AndroidStudio安装 默认sdk路径 C:\Users\Administrator\AppData\Local\Android\Sdk 将platform-tools所在的目录添加到path C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools 主要目的是使用该目录下的adb等命令 将tools所在的目录添加到path C:\Us…

LabVIEW风机跑合监控系统

开发了一种基于LabVIEW的风机跑合监控系统,提高风机测试的效率和安全性。系统通过自动控制风机的启停、实时监控电流和功率数据,并具有过流保护功能,有效减少了人工操作和安全隐患,提升了工业设备测试的自动化和智能化水平。 项目…

解决注册表删除Google报错问题

删除注册表中的Google时报错: 解决方式: 1、右键com.microsoft.browsercore,选择【权限】,在弹出的窗口中点击【高级】 2、可以看到现在的所有者是:TrustedInstaller,点击【更改】 3、点击选择用户和组中的…

东方航空逆向

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! …

问题解决|endnote文献手工导入

一、背景介绍 手工导入一篇文献是指手动编辑文献的相关信息Preference。为什么要手动这么麻烦?因为有的文献比较老只有纸质版本,有的文献信息不全,有的则是没有编码无法识别等等,需要手工录入;一般需要手工录入的情况比…

使用gradio搭建私有云ChatGLM3网页客户端

【图书推荐】《ChatGLM3大模型本地化部署、应用开发与微调》-CSDN博客 通过简单的代码领略一下ChatGLM3大模型_chatglm3 history怎么写-CSDN博客 对于一般使用网页端完成部署的用户来说,最少需要准备一个自定义的网页端界面。在网页端界面上,可以设置文…

5.SQL注入-通过union进行获取数据-字符型

通过union进行获取数据-字符型 在pikachu上查询kobe,出现了两个字段id和email 在后台和前端查询是一样的出现数据,也就是有两个字段:id和email 通过sql语句order by 以列的形式排序,没有第三列,所以order by 3 报…

快速将网页封装成APP:小猪APP分发助您一臂之力

你是否曾经有一个绝妙的网页,但苦于无法将其变成手机APP?其实,你并不孤单。越来越多的企业和开发者希望将自己的网站封装成APP,以便更好地接触到移动端用户。我们就来聊聊如何快速将网页封装成APP,并探讨小猪APP分发在…

可燃气体报警器检测机构:严格遵守的安全标准

随着工业、商业和家庭领域对安全要求的不断提高,可燃气体报警器作为预防火灾和爆炸事故的重要设备,其性能稳定性和可靠性越来越受到关注。 可燃气体报警器检测机构应运而生,为确保这些设备的有效运行发挥着不可替代的作用。 接下来&#xf…

Python中的数据结构

一.堆 堆的建立可以通过导入heapq库来实现 在Python中建立的是最小堆 即heap[k]<heap[2*k1]and heap[k]<heap[2*k2] 下面是一些 堆使用的方法 heapq.heappush([],加入的元素) heapq.heappop(heap)弹出最小的元素 heapq.nlargest(3,heap)返回最大的三个元素 hea…

Vue笔记-vue中使用JS创建的函数

主要是公司对前端要求不高&#xff0c;能解决问题就行了&#xff0c;前端不太熟&#xff0c;用js这种处理起来方便&#xff0c;在此记录下。 在src中创建一个api目录&#xff0c;新建custom.js export const getDivHeightByClass (className) > {let divElements docume…

Java面试题--JVM大厂篇之G1 GC的分区管理方式如何减少应用线程的影响

目录 引言: 正文: 1. 区域划分&#xff08;Region&#xff09; 2. 并行和并发回收 3. 区域优先回收&#xff08;Garbage First&#xff09; 4. 可预测的停顿时间 5. 分阶段回收 6. 复制和压缩 实际效果: 场景举例 1. 减少单次GC的影响 2. 支持高并发环境 3. 优…