分类 视频脚本 下的文章

视频点此

海信自己的系统实在是不稳定,三天两头自己重启;本身只有一个墨水屏,单纯待机的话耗电确实挺不错,但但凡打开点啥程序,电量眼瞅着就往下掉了。所以在得知海信的墨水屏手机可以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

视频点此

Linux系统会为每一个用户建立一个home目录,其中有几个金刚路径,如桌面、文档、音乐、下载等等。通常来讲,在图形界面下使用这几个文件夹可能不会意识到什么问题,但如果使用终端的话,你也许会发现:在不同的发行版里,这几个金刚文件夹的实际名称可能是中文,可能是英文。也就是说虽然在图形界面下,文件夹名字显示为“桌面”,但实际上需要在终端中输入cd ~/Desktop才能进入桌面文件夹。这个是为什么呢?

这个问题——其实也不是问题。因为只是设置存在一些差异。

一、如果你是图形界面用户

以KDE为例,你可以发现在设置个性化-应用程序-位置项中可以随意定义这几个金刚文件夹的路径。因此如果想把中文路径调整为英文,直接输入即可。确定时按照提示,系统会自动完成文件夹的重命名操作。
另外,由于可以随意自定义,所以理论上如果你有长期挂载一个网盘当作本地扩容的分区,那么你也可以通过这个设置,把这个网盘当作某一个金刚文件夹对应的路径。

二、如果你是终端用户

这个文件夹映射关系保存在~/.config/user-dirs.dirs文件中,因此只需要修改对应的路径即可实现调整。但是需要注意,由于终端无法完成自动重命名,所以如果需要保留文件夹中的数据,需要在修改路径之后手工将原先的文件夹修改成对应的名称才能保证继续映射。

视频点此

不管是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的教程

视频点此

可以说unity桌面是我正经使用Linux后最早接触的桌面环境,也可以算是我最习惯使用的桌面环境之一。而关注unity或者ubuntu的朋友可能知道,ubuntu从18.04开始,其默认的桌面环境切换回了gnome。但在2020年出现了由一个印度小兄弟领导发布的ubuntu unity,旨在提供回原生的unity桌面体验。所以在我发现这个发行版之后,我便在unity的吸引下重新装回了放弃多年的ubuntu。但最终,我还是把ubuntu给换掉了,今天就来简单聊聊其中的原因。

一、优势

无论如何,ubuntu可能也是用户数量相当高的一个发行版,因此很多网上Debian系发行版的教程、可以搜索到的疑难解答实际上都是参照乌班图的软件仓库进行编写的,这样一来在日常使用过程中就可以有相当方便、快捷的网络支持体验。同样的,由于使用人数众多,如果一个软件想兼容Linux,那么一般来说最先得到官方适配的基本就是ubuntu无疑了。

此外,ubuntu背后有公司存在,且基于Debian衍生,所以在寿命、稳定性方面可以信任。除了LTS版本提供更长时间的支持之外,还可以加入ubuntu pro计划以获得更长的维护支持。且如果个人使用的话,这个还是免费的。

更多优势我就不说了,老生常谈。最主要的是我为什么最终换掉了它。

二、劣势

原因只有一个:snap。
Snap是ubuntu自己推出的一种软件包形式,且已经融合在ubuntu中。随着snap的逐渐完善,Ubuntu也在逐步降低对deb软件包的支持力度。而官方更是给出了将在23.10版本中加入snap商城,可能后续加入的应用程序会优先提供snap形式,再适时加入到apt仓库之中。
Snap的优势算是比较明显的,简单来讲就是类macOS组织形式,应用之间相互隔离,依赖版本冲突可以得到很好的解决。
但一个比较致命的问题:snap的服务器在国内没有镜像站点。
是的,即使不使用Linux的朋友都可以猜到个大概了:虽然可以建立连接,但速度太慢了。更不用说时不常的还需要检查并更新snap应用。这很难让人很难坚持下去。

此外,由于snap在程序启动时候相当于建立了一个虚拟的系统环境,这使得程序的启动速度相对传统的方式会减慢不少——当然,可能是因为我的Linux分区还是使用机械硬盘的缘故,如今固态硬盘这个影响可能已经不明显了。

但建立虚拟的程序环境意味着一个问题:系统所有的配置应该都可以映射过去,这样才能保证使用的过程中不会出现什么奇异的问题。但目前的snap分明没能完全顾全这一点。比如我的chrome下载文件默认的保存位置是一个轻易找不到的路径,我当时为了这个路径研究了半天文件夹之间的映射关系。如果是一个没有发现相关规律的用户使用的话,那对snap版本的chrome可能只有一个评价:这个chrome下载会把文件下丢。
另一个比较影响使用的情况:输入法。在我使用的这段时间中有两种经典情况:输入法候选列表不展示、根本无法唤醒中文输入法。这个不多解释,想想就能知道对于中文用户来说,这种程序在使用的时候会有多麻烦。

可能会有朋友说ubuntu还有其他的一些问题,比如版本号更新经常性的更坏掉、经常性的报告系统错误弹窗之类的。但这些是ubuntu在使用snap格式软件包之前就存在的一些问题。既然选择了ubuntu那么说明这些经典问题已经考虑过了,相较于unity,还是unity更香一些。但真的使用起来,发现snap异味完全覆盖过了unity的清新。

当然,snap这些问题可能也是因为unity没有完全适配好,官方版本不会出现。诚然,可能官方对snap的支持会更全面一些,但国内镜像站点不存在就是不存在,而且官方使用gnome桌面,我能有什么特殊的理由一定要选择ubuntu呢?

视频点此

一说到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

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

视频点此

如果你关注过一些国内的for Linux应用的话就会发现,它们之中很多都是通过网页版套壳实现的。对于一些有着非常完善的网页版应用来说,如此方法确实可以在很短时间内打造一款全平台兼容的本地化应用。对于这类操作,Linux下拥有一个小工具来实现——nativefier

这是一个纯粹的终端程序,一行指令即可将一个网页打包成一个全平台兼容的electron套壳应用。可以前往GitHub查看具体内容。这里只介绍基本用法。

一、安装

在很多发行版中都可以直接通过源来安装。对于openSUSE,直接通过opi nativefier即可搜索到对应的OBS源,添加安装即可。

对于源中没有这个软件的,或者Windows、macOS来说,由于此工具由nodejs编辑,直接使用npm install -g nativefier安装即可。

二、基本使用

在安装完成后,便可以直接使用了。

基础命令为:nativefier -n <打包后的应用名称> -p <程序兼容的平台> —-arch <架构> —- weight <窗口宽度> —-height <窗口高度> <网页URL>

如打包微信网页版:nativefier -n WeChat -p Linux ——arch x64 ——width 1024 ——height 768 https://wx.qq.com/

  • 如果想让程序可以后台运行,可以增加参数——tray
  • 如果不想在使用时可以调出chrome的开发者工具,可以增加参数——disable-dev-tools
  • 如果想控制程序在同一时间只能运行一个实例,则增加参数——single-instance

设置好参数后回车,第一次运行会自动获取一个electron的依赖,然后自动开始打包。打包完成的程序会放置在~/<应用名称>-<兼容平台>-<架构>/文件夹下。你可以直接在这个文件夹下执行二进制文件以启动程序,或自己编辑一个desktop文件,将这个打包好的程序“安装”到系统中运行了。