分类 通用知识 下的文章

转眼都到了2024年了。回看一下2023年,我居然发布了整整16个乱七八糟的内容,我实在太勤奋了。

那么,作为一个以类unix系统教程碎片为主的频道,在新年之际跟你分享一下2023年的一些变化。

更新频率降低的最主要原因就是莫名其妙的没有太闲着,而没有太闲着导致的结果就是很少打开家中常用的电脑,而不用家中电脑就意味着我这一年实际上很少使用Linux或者macOS系统。可以说,我在2020年换掉archlinux时候的预言在2023年得到了完美的体现。属实是:不是不报时辰未到。

但即使使用的频率很低,我还是将ubuntuunity更换到了Debian12。这可能是我这一年中最大的一个更改,这其中的具体原因我也有分享过,可以回看一下。

提到了乌班图,这让我想到了2023年乌班图的一个改变人生轨迹的变化:引入了基于flutter的应用商店。这项调整体现在了前几个月发布的乌班图23.10版本中,用以替代老朋友——乌班图软件中心。相对来说,新版本的商店有着更现代、更流畅、更一致的使用体验,可能也会助力乌班图全局snap化的布局。

可能你觉得使用flutter开发应用商店与全局snap化没啥关联,不过乌班图在2023年2月宣布,官方版本不再支持flatpak格式软件包开箱即用你又如何看待呢?很明显,乌班图为了推广并应用自己发布的snap格式软件包在自己的系统上不遗余力,撤销开箱支持flatpak可以说是最明显的一项措施。不过仅仅是无法开箱即用,你还是可以手动部署相关的程序以恢复flatpak支持。

顺带一提,即将推出的ubuntu24.04为长期支持版本也有一个新的变化,那便是它将可以获得长达12年的更新支持——当然,这需要你注册ubuntu pro。不过这项服务对于个人用户来说是免费的,如果你习惯并长期使用乌班图的话,安装这个版本并加入ubuntu pro也不失为一个好的选择。

你方唱罢我登场,与ubuntu所处的Debian分支相对的,则是RHEL分支中一个改变人生轨迹的变化:RHEL与2023年中旬宣布限制其源码访问。现在看来这个大概是转变CentOS性质的接续步骤:目前的CentOS完全可以说是RHEL的测试版,而曾经的CentOS则可以看作是RHEL的免费版。两者位置的变更似的RHEL可以将全部精力投入到企业客户上,而无需再考虑普通用户。这个消息在刚发布时反响剧烈,不过就目前来看,这更多的改变了RHEL下游发行版的生存轨迹,对于其他分支,甚至RHEL本身的企业用户来说,影响不大——暂时不大。

现在从发行版层面剥离出来,看看内核层面改变人生轨迹的变化:支持周期从六年缩短至两年了——我是说LTS内核。这个变化大概对用户来说影响不大,毕竟现在常见的发行版,要么像SuSE,不更新内核主版本,但自己长期单独维护,以至于跟用新内核没啥区别;要么就像Arch,有新的就直接给更新上来了。但支持周期的缩短对与内核维护人员来说可是重大利好——再也不用管理那么多没啥人用的旧版本内核了。

上面这些2023年Linux世界的变化是好是坏还请各位评判。不过,Linux版Steam使用率超过macOS,从哪种角度来看到可以算是2023年Linux世界一个不错的消息吧——当然了,这俩货加起来都追不上Windows的零头,不过,这至少证明Valve这几年在Linux游戏领域所做的不懈努力不是白费的——要知道,为了能让Linux运行Steam 中大多数的游戏,Valve从大概疫情前便开始基于wine来开发Linux 的游戏兼容层proton,并在这些年中取得了极大的进步。截止目前,Steam上热门游戏通过官方测试可以运行的已经超过了10000款,而根据玩家的测试,这个数量可以上升至大约17000款。我想这对于一名普通玩家来说已经不是一个小数字了。

但诚然,目前这个兼容层还不是十全十美:比如联网游玩的游戏,反作弊插件目前还无法正常运行。但车到山前必有路,由于Valve的proton套件是开源的,因此针对部分特定游戏,有个人开发者定制了proton套件,使得可以通过定制版套件达到正常运行带有反作弊插件游戏的目的。不过这些仍只是个例,Linux联网游戏任重而道远。

以上便是跟各位分享的2023年Linux世界的一些重大的、改变人生轨迹的变化。祝各位能在这曲里拐弯的人生中好好生活。

视频点此

海信自己的系统实在是不稳定,三天两头自己重启;本身只有一个墨水屏,单纯待机的话耗电确实挺不错,但但凡打开点啥程序,电量眼瞅着就往下掉了。所以在得知海信的墨水屏手机可以root了之后便跃跃欲试。但“官方”的教程非常简洁,解bl锁与root分成了两个板块,而且有些地方描述的比较学术性(我的意思打算照抄完成root操作是不现实的),所以我在官方教程的基础上,参照我自己成功root的过程,编写一个将解bl锁与root结合在一起的、尽量可以做到照抄即可的说明,也许能助力一些机主的root工作吧。

注意:所有操作均在Windows下实现,使用Linux实现的我感觉应该也不至于看这个了…
注意:下面均以海信A5pro CC为例,其他型号类似,只是需要注意安卓版本

一、下载并部署环境

  1. 官方解bl锁教程页,下载教程页中的SPD_Driver_R4.20.4201并安装
  2. Release,下载最新的解锁工具

    1. 下载自己手机型号的包,如hisense_a5procc.zip
    2. 下载spd_dump_231002.zip
  3. Magisk教程页Android 10 and up,下载最新的root工具

    1. 根据使用电脑的位数,在[1]python2处选择对应的下载。如果选择x86版本,需额外下载OpenSSL
    2. 点开[2]avbtool的链接,点击Code - Download ZIP
    3. 点开[4]Android Image Kitchen,往下翻到Downloads模块,下载Android.Image.Kitchen.v3.8-Win32.zip
    4. step3位置,下载rsa4096_vbmeta.pem
    5. 前往adb下载页或其他可以访问的站点,下载adb
  4. 解压、安装上述文件

    1. 解压hisense_a5procc.zip,假设文件夹位置在%DESKTOP%\root\
    2. 解压spd_dump_231002.zip,覆盖到上述目录
    3. 安装3.1步骤下载的python2,保持默认设置,并注意勾选添加到路径(Add to Path)若为x86版本,额外下载了OpenSSL,一并以默认配置安装
    4. x64的Python2的压缩包中有OpenSSL安装程序,x86的则已在3.1另行下载。按默认配置进行安装
    5. 打开3.2步骤下载的压缩包,里边有一个文件夹。打开这个文件夹,将其中所有文件解压,假设解压文件夹位置在%DESKTOP\magisk\
    6. 解压Android.Image.Kitchen.v3.8-Win32.zip%DESKTOP\magisk\,并将得到的这个文件夹名称修改为AIK
    7. 打开3.5下载的adb压缩包,展开到可以直接看到adb所有程序文件的文件夹,将这些文件解压到%DESKTOP\magisk\

部署完成,可以开始进行解锁root工作了。

二、解bl锁

  1. 文件管理器切换到%DESKTOP%\root\文件夹
  2. 按照SupportList的按键方式启动手机,进入下载模式(海信A5pro CC的按键为音量+、音量-、电源全部按下,持续7~10秒)
  3. 将手机与电脑连接,双击onekey_fdl1.bat开始一键解锁过程

注意

  1. 第2、3步需要在30秒内完成。而对于墨水屏手机,进入下载模式与否屏幕上难以分辨,因此先将数据线连接到手机,然后按下按键7秒左右,再打开bat文件,最后将数据线与电脑相连。此时观察电脑上打开的命令提示符,若开始有跑数据则说明成功进入了下载模式,否则断开连接重新操作。
  2. 就我个人操作来看,如果三个按键真的同时按下,手机不会响应任何操作。因此建议先按下电源键,然后再立刻按下音量+与音量-,这样成功的概率会高一些。

三、root

再次提示:这里是假设使用的设备是海信A5pro CC
  1. 获取boot.img

    1. 在命令提示符中打开%DESKTOP%\root\目录
    2. 同二.2,进入下载模式
    3. 将手机与电脑连接,命令提示符输入spd_dump exec_addr 0x3f48 fdl fdl1-dl.bin 0x5500 fdl uboot-mod.bin 0x9efffe00 exec read_part boot 0 35M boot.img reset
    4. 待命令执行完成,便得到了手机原本的boot.img
  2. 修补boot.img

    1. 正常启动手机,将前面得到的boot.img拷贝到手机的内部存储中
    2. 手机中安装Magisk应用(建议酷安下载,至少还算正规)
    3. 打开Magisk,点击安装 - 选择并修补一个文件,选择拷贝到手机的boot.img,等待完成
    4. 现在便得到了修补后的boot.img,假如文件名为magisk_patched_cR5kd.img
  3. 重打包boot.img

    1. magisk_patched_cR5kd.img拷贝至电脑%DESKTOP\magisk\AIK中
    2. 在这个文件夹中,双击unpackimg.bat
    3. 双击repackimg.bat
    4. 现在得到了重新打包的boot.img文件
  4. 签名boot.img

    1. 将路径C:\Python27C:\Python27\ScriptsC:\Program Files\OpenSSL-Win64\bin添加到环境变量(若安装python时勾选了添加路径的选项,则此时只需增加第三个)
    2. 打开命令提示符,输入命令mklink /H C:\Python27\python2.exe C:\Python27\python.exe
    3. 输入命令python2 -m pip install pycryptodome
    4. 命令提示符切换到%DESKTOP\magisk\路径
    5. 输入命令python2 avbtool add_hash_footer --image AIK/image-new.img --partition_name boot --partition_size 36700160 --key rsa4096_vbmeta.pem --algorithm SHA256_RSA4096 --salt 5F55215FD2302D021F850B55912ED48D176784678692DC012E054B1ECD0BE025
  5. 刷入经过处理的boot.img

    1. 连接手机与电脑,手机端打开USB调试并信任此电脑
    2. 在三.4.5状态的命令提示符中,输入命令adb reboot fastboot,手机会重启并进入fastboot模式
    3. 待手机成功切换模式后,命令提示符中输入命令fastboot flash boot AIK/image-new.img
    4. 待命令执行完成,输入命令fastboot reboot

至此,你的海信A5pro CC就已经root完成了。

以上内容,对于相同型号的用户可以直接照葫芦画瓢,保证每一步都是成功执行的,那么成功root的问题就不会太大;而对于其他型号的用户,需要注意进入下载模式按键不同,三.1.3步骤中exec_addr后面的地址也不同。这部分可以直接复制%DESKTOP%\root\manual_command_fdl1.txt中第一行的相同字段;还是这一步,倒数第三块的参数(我这里是35M)需要根据安卓版本来确定。具体方法可以参考下面的第二条链接。


相关链接

  1. 解bl锁
  2. 刷入magisk

视频点此

不管是Windows还是Linux,又或者是macOS,都存在一个字符操作界面——终端,其中有很多直接输入便可使用的命令。那么这些命令都存在哪里了,又为什么可以直接调用呢?

这得益于一个所有操作系统都通用的一个概念:环境变量。终端下可以直接使用的命令都是由名为PATH的环境变量明确的。这个环境变量存储了很多路径信息,只要一个命令的可执行文件被放在了这些路径中,那么在终端中便可以直接通过输入这个可执行文件的文件名来实现直接使用,而无需通过输入绝对路径来调用。

如何知道哪些目录可以实现这一点呢?只需要查看PATH这个变量的值即可。

在Linux中,有很多方法可以实现查看环境变量信息。这里首先推荐一个比较好用的命令export。终端中直接输入即可查看当前用户下所有已经定义了的环境变量;使用export 变量名可以进行单独查看;使用export 变量名="变量值"则可以直接定义一个环境变量的内容。

对于PATH变量,一般来说会包括下面几个路径

  • /usr/bin
  • /usr/local/bin
  • /bin
  • /usr/games #这个是在使用Debian时候发现的。没想到竟然把游戏的可执行文件单独拿出来了…

那有没有办法自定义这个路径呢?

就像前面说的,直接定义即可。比如

export PATH=自定义的路径:$PATH 

这就是自定义PATH环境变量的基本写法。其中:

  • 使用冒号区分不同的路径
  • 路径写入的顺序区分了优先级。越靠前越优先检索使用
  • 一定在最前面或者最后面写上$PATH以保证原本的PATH信息不会被覆盖掉

自定义PATH是比较有用的。比如经常使用单独下载的程序,那么可以定义一个专门存放这些应用的路径,将其添加到PATH中。这样在终端下便可以直接输入程序启动命令来使用,而无需先进入到对应路径再执行,或者想方设法的将程序安装进系统了。而对于Windows,自定义路径可能不太常用,但如果有兴趣,你可以查一查安装python2.7的教程

这纯粹是一篇日常的记录,顺便可以防止自己忘记,当一个备份

在电子信息方面,我自己经常会莫名其妙的解决一些困扰很长时间的奇怪问题——在按照网络上面提供的方法尝试后依然没有任何作用的时候。从以前使用老电脑时候的硬件故障,到后来刚开始接触Linux出现的一些字体之类的配置问题……这种经历怎么形容呢,就是不知道从哪里获得的启发,突然灵光乍现,觉得可能这么搞就可以解决,然后也确实就解决了。不知道看这篇文章的各位有没有过这种类似的经历。

而就在刚刚,同样的灵光乍现,让我解决了我公司系统在我的windows11上面功能不完整的问题。

之前

大多数公司内部的系统什么样子应该有目共睹。一句话形容就是:能用就行。所以我公司合同系统在2010年上线后就几乎没有任何的重构,以至于它只能在IE内核上工作,甚至连新版本IE都不太好正常使用。

更不要说完全停用IE的windows11了。

所以一直以来我都是使用双内核的浏览器进行合同系统的操作,这样至少我可以正常打开合同系统,并且可以使用大多数合同系统的功能。但这其中,上传文件正常使用的前提是需要调整一下Internet设置。这部分其实已经轻车熟路了。

  • Internet选项-安全标签,所有级别的安全等级均拉到最低
  • Internet级别选择自定义,脚本之前的所有禁用项全部启用
  • 确定

但合同定稿按钮,自从使用windows11以来无论如何都没办法使用,所以一直也是借用同事的电脑来完成定稿工作。

曾经有看过F12里边的报错,说是loadXML方法不可用。在网上查也查不到什么有用的办法。全都是说换到IE使用之类的……

我要是能用,还用得着费这劲?而且我已经用IE模式运行了,但该不行还是不行。

今天

但今天又想起来这个事情的时候,突然灵光乍现:我在家用windows7的虚拟机时候,IE进入合同系统的功能就是完整的,那我是不是可以在公司这个双内核浏览器里边把IE版本往前调呢?

  • 进入这个浏览器的设置-高级设置-内核切换设置
  • 找到列表里边的合同系统的地址,右侧直接指定成IE8

再打开合同系统,解决了。

就…很惊喜,但又很平淡。

惊喜的是困扰了得一年多的问题一下子就解决了;
平淡的是……解决方法就是这样,就没了……

视频点此

一说到Linux,就一定会想到终端——无论把它看作优势还是劣势。那么这个终端相对于另外两大操作系统,有没有什么特别之处呢?

说到Linux终端的用处可以说很多,比如安装软件、更新系统、调整配置之类的。但一定程度上,另外两个操作系统的终端程序也可以拥有类似的功能。所以我一直认为Linux终端的优势在于可以快速查看程序出错的原因,这在另外两大操作系统中是比较难做到的。举一个Gnome设置崩溃的例子来看。

表现

点击gnome设置,图形界面会呈现程序启动的相关动画,但并不能展示出设置的窗口。这可以说是非常典型的启动即崩溃问题。通常在macOS和Windows中,对于这种点击后有运行迹象,但就是没有窗口的程序我们可能完全不清楚发生了什么。而对于Linux,我们可以通过终端来运行,快速查看程序到底发生了什么事。

查看原因

直接打开终端,启动gnome设置命令gnome-control-center——当然,如何找到这种启动命令可能也是一个小知识点,以后有机会的话会简单介绍一下。

此时,终端执行的优势就出来了,直接给出了错误信息:(gnome-control-center:15840): GLib-GIO-ERROR **: 13:41:26.403: Settings schema 'org.gnome.shell.app-switcher' is not installed

那么对症下药,补充这个模式就可以了。

但很不幸,这玩意儿貌似没有一个软件包或任何可以搜索到的来源包含这个玩意儿……此时终端的另一个有共识性的优势就体现出来了:直接修改配置。

gnome家族的软件多数都是用gsettings来调整配置的,图形化的软件可以参考dconf。

此时在终端中运行gsettings list-keys org.gnome.ControlCenter,可以看到其拥有的设置项,其中的last-panel,可能是记录了退出设置程序时打开的界面。联想到前一次正常打开时,是点击了多任务标签后直接崩溃的,因此推测由于last-panel记录了最后点击的标签页,再次打开设置时由于直接根据记录定位到了多任务,所以会再次漰溃进而无法启动。

为了验证,获取last-panel的值gsettings get org.gnome.ControlCenter last-panel
看到值为multitasking,确认了上述推测。因此将这个值复位应该即可解决:gsettings reset org.gnome.ControlCenter last-panel

再次打开设置,成功启动。

我一直很喜欢一种网页风格:没有排版,也没有华丽的装饰,各种文字信息以较高密度呈现在观看者眼前的风格。后来我逐渐意识到,这种风格十分偏向于千禧年前后,匠人手制网页的模样。

在我把Typecho更新之后,曾经的主题便不兼容了。也是在这时候,我发现Typecho自己的主题挺有我说的那种味道的,于是打算直接用默认主题就得了。但渐渐的,我发现默认主题还是多多少少有些缺失的,比如首页直接把文章全文按顺序排列,浏览文章十分不便。所以,我最终决定把官方这个主题打磨一下,让它成为我心目中最理想的,最千禧年风格主题。现在,它来了。

Übermorgen/Typecho Millennium Style主题


特性及优势

  1. 基于官方主题,原汁原味的简约,完全区分文章与独立页面这两个Typecho的文章形式
  2. 紧凑的自适应布局,高信息密度、清晰的观感
  3. 亮暗模式,轻点按钮即可实现
  4. 可选置顶文章,公开事项不必担心被新发表内容淹没了
  5. 可选在首页展开最新发布的文章,主次区分更明显。不必担心文章点击量降低,若开启,首页即是文章页
  6. 可选使用分类文章列表,调理更清晰,博客主题更凸显
  7. 可选展示随机文章,引流更全面,搜索引擎更友好
  8. 可选展示联系方式,全面宣传不再困难
  9. 所有可以看到的图形元素均已font-awesome字符化,包括搜索栏右边的放大镜按钮,加载快人一步
  10. 搜索、归档、分类文章界面半隐效果,增加点击概率
  11. 分类、标签同级展示,连接更方便

安装、设置

2.1版本后,插件TePostViews作为主题推荐插件会在后台弹窗提示。推荐安装激活以获得更完全的体验。

直接前往gitee下载最新发行版,解压到你的Typecho文件夹/usr/theme/中将文件夹重命名为Millennium-style,然后在Typecho后台启用即可。

每次推出新版本时,typecho后台—控制台—外观—设置外观会弹出提示。此时再次前往前面的网页下载最近发行版,解压覆盖即可。

当前,如果你熟悉git操作的话,也可以直接克隆这个工程的master分支。这样每次发出新版本的时候,只需同步一次即可。

现在,可以切换到主题的设置界面,你首先会看到这些勾选项。它们各自控制着首页不同板块,具体如下图所示。

在选项下面,是四个自定义项目。相关说明如下。

置顶文章ID

如果前面开启了置顶文章功能,那么可以在这里输入文章的cid使其在首页置顶显示。多篇置顶可以连续输入,通过英文逗号分隔。置顶的文章可以在首页显示标题及一部分文章内容。

获取cid是简单的,只需查看文章链接中的数字即可。

注意:推荐输入不超过3篇置顶文章,以获得最佳展示效果;仅当置顶文章被勾选且此处写入了文章ID,置顶模块才会被启用。

分类缩略名

如果前面开启了显示分类功能,那么可以在这里输入分类的slug,使首页直接展示这些分类下的文章列表。这些列表将只显示标题而不再显示正文预览。

获取slug也是简单的,直接进入博客设置界面-管理-分类中查看缩略名一列即可。

注意:推荐输入3的倍数个分类,分类名间用英文逗号分隔;仅当显示分类被勾选且此处写入了slug,分类文章列表模块才会被启用。

社交信息

这是上述所有设置项目中最繁琐的。但格式很简单:一行一个社交平台信息,按照社交平台名,链接,图标,用户名的形式输入即可(中间通过英文逗号分隔)。

  • 社交平台名:鼠标放到社交按钮上会浮现出来的名字
  • 链接:如微博、其他平台的主页等,会有对应的超链接地址。有则复制,没有则输#
  • 图标:关联font-awesome。直接输入font-awesome的图标样式即可;若没有则留空(不过font-awesome那么多图标,总会有一个是比较沾边的)
  • 用户名:展示在图标旁的名字。当然也可以使用社交平台的名字而不用用户名

注意:仅当显示社交平台信息被勾选且此处写入了字段才会被启用。

下面举几个例子。

1、微信(有用户名、有图标、无链接)

微信,#,fab fa-weixin,stsiao

2、Tg(有用户名、有图标、有链接)

telegram,https://t.me/stsiao,fab fa-telegram,@stsiao

3、灵感创造者(我的另一个站点,无用户名,无图标,有链接)

灵感创造者,https://kanban.bwsl.wang,,灵感创造者

对于站内链接,也可以放在这里。比如增加一个本站RSS订阅按钮:

RSS,/feed,fa fa-rss,RSS

随机文章显示数量(2.1版本新增)

这部分非常容易理解。如果打开了随机文章功能,那么可以在这里自定义这个模块显示的文章数量。留空则应用默认值8篇。

友链(2.6版本新增)

如果此处填写有信息,对于PC端,此部分会展示在页脚文章归档模块下方;对于手机端,此部分会展示在页脚社交平台信息与搜索栏之间。填写方法很简单,一行一个,按照名称,地址格式书写。其中:

  • 地址应该以http或https开头
  • 中间为英文逗号

那么就说到这儿吧,祝使用愉快。