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

写在前面

到目前为止,我已经花了非常多的时间去学习和了解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.mzph.cn/pingmian/38413.shtml

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

相关文章

2095.删除链表的中间节点

给你一个链表的头节点 head 。删除链表的中间节点 ,并返回修改后的链表的头节点 head。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、2、3、4 和…

网络==>总论v4

既然是写ICT方面的文章,就要不断更新版本,不是文学,可以一劳永逸,如果不更新,看十年前或者二十年前的书意义不大,这就是为啥看到很多编程书都更新到第十几版了,因为要与时俱进。 在去一个地方旅…

51单片机第21步_将TIM0用作两个8位定时器同时将TIM1用作波特率发生器

本章重点讲解将TIM0用作两个8位定时器,同时将TIM1用作波特率发生器。 当定时器T0在方式3时,T1不能产生中断,但可以正常工作在方式0、1、2下,大多数情况下,T1将用作串口的波特率发生器。 1、定时器0工作在模式3框图&a…

Webpack: 核心配置结构

概述 Webpack 是一种 「配置」 驱动的构建工具,所以站在应用的角度,必须深入学习 Webpack 的各项配置规则,才能灵活应对各种构建需求。本文将作为小册应用系列的一个总结,汇总与应用配置相关的各项知识点,包括&#x…

高并发场景下的热点key问题探析与应对策略

目录 一、问题描述 二、发现机制 三、解决策略分析 (一)解决策略一:多级缓存策略 客户端本地缓存 代理节点本地缓存 (二)解决策略二:多副本策略 (三)解决策略三:热点…

XJTUSE-数据结构-homework1

任务 1 题目: 排序算法设计: 需要写Selection、Shell、Quicksort 和 Mergesort四种排序算法,书上讲述比较全面而且不需要进行额外的优化,下面我简要地按照自己的理解讲述。 Selection(选择排序)&#xff…

关于Redisson分布式锁的用法

关于Redisson分布式锁的用法 Redisson是一个基于Redis的Java分布式对象和服务框架,它提供了多种分布式锁的实现,包括可重入锁、公平锁、读写锁等。Redisson实现分布式锁的核心原理主要依赖于Redis的数据结构和Redisson框架提供的高级功能。以下详细讲解…

深度学习11-20

1.神经元的个数对结果的影响: (http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html) (1)神经元3个的时候 (2)神经元是10个的时候 神经元个数越多,可能会产生…

第3章-数据类型和运算符

#本章目标 掌握Python中的保留字与标识符 理解Python中变量的定义及使用 掌握Python中基本数据类型 掌握数据类型之间的相互转换 掌握eval()函数的使用 了解不同的进制数 掌握Python中常用的运算符及优先级1,保留字与标识符 保留字 指在Python中被赋予特定意义的一…

[C++][设计模式][备忘录模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受 1.动机 在软件构建过程中,某些对象的状态转换过程中,可能由于某中需要,要求程序能够回溯到对象之前处于某个点的状态。 如果使用一些公开接口来让其他对象得到对象的状态,便会暴露对象…

pygame下载安装流程

方案一:直接下载 使用cmd打开窗口: 使用命令:pip install pygame即可下载最新pygame安装包 方案二:下载指定版本 我们需要去python官网查看对应包和发布版本: python官网 进去后点击PyPI,查找python发布…

初阶数据结构之堆讲解

本篇文章带大家学习的是堆,还请各位观众老爷给个三连 正片开始 堆的概念 如果有一个关键码的集合 K { , , , … , } ,把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满…

【Redis】主从复制

https://www.bilibili.com/video/BV1cr4y1671t?p101 https://blog.csdn.net/weixin_54232666/article/details/128825763 单节点Redis的并发能力是有上限的,要进一步提高Redist的并发能力,就需要搭建主从集群,实现读写分离。 主从搭建 这…

访客(UV)、点击量(PV)、IP、访问量(VV)概念

1、https://www.cnblogs.com/QingPingZm/articles/13855808.htmlhttps://www.cnblogs.com/QingPingZm/articles/13855808.html

监控电脑的软件有哪些?精选8大监控电脑的软件

根据当前市场反馈和功能评价,以下是八款备受推崇的电脑监控软件推荐,适合不同企业和组织的监控与管理需求: 1.安企神监控软件 特点:全面的局域网监控工具,擅长网络设备监控、网络性能管理和故障诊断。提供员工电脑屏幕…

计算机网络:408考研|湖科大教书匠|原理参考模型II|学习笔记

系列目录 计算机网络总纲领 计算机网络特殊考点 计算机网络原理参考模型I 计算机网络原理参考模型II 目录 系列目录更新日志前言应用层(Application Layer)一、应用层概述二、客户/服务器方式和对等方式三、动态主机配置协议(DHCP, Dynamic Host Configuration Protocol)四、域…

微机原理与接口技术:重点内容|计算机系统|学习笔记

系列目录 前言 只将最重要的知识点考点列出来方便学习复习 目录 系列目录前言第1章 微型计算机概述第2章 16位和32位微处理机🌟16位微处理器 8086 第3章 Pentium 的指令系统常用指令 第4章 存储器、存储管理和高速缓存技术第5章 微型计算机和外设的数据传输第6章 串…

LeetCode-213. 打家劫舍 II【数组 动态规划】

LeetCode-213. 打家劫舍 II【数组 动态规划】 题目描述:解题思路一:分三种情况,一:不考虑头尾;二:考虑头不考虑尾;三:考虑尾不考虑头。解题思路二:优化空间解题思路三&am…

Android笔记-adb keycode大全

使用方法 用adb发送按键事件时,可以使用下面表中的枚举值或者直接使用数值,比如 adb shell input keyevent KEYCODE_HOME 或者 adb shell input keyevent 3 下面按三种排序方法列出所有按键的 keycode, 分别是: 按功能分 按枚…

LLM端侧部署系列 | 陈天奇MLC-LLM重磅升级:基于机器学习编译的通用LLM部署引擎

引言 简介 MLCEngine的聊天功能 OpenAI风格API 云端REST API Python API iOS SDK Android SDK WebLLM SDK 小结 结构化生成 支持各种平台 优化引擎性能 总结 引言 流星透疏水,走月逆行云。 小伙伴们好,我是《小窗幽记机器学习》的小编&am…