标签: android

  • 修复小新 Pad Pro 2021 运行 GSI 时的亮度问题

    一些关于折腾联想小新 Pad Pro 2021 的记录

    3 / 3 of 小新 Pad Pro 2021

    上回书说道,我给小新 Pad Pro 2021(aka. Lenovo J716F)装上了 GSI 系统。当时用的联想 Y700 的模块勉强修复了自动亮度失效的问题。最近我心血来潮,经历了快 10 小时的摸索,终于为 J716F 制作出了专属的 Magisk 模块 —— lenovo-j716f-gsi-fix 年轻人的第一个 Magisk 模块

    这个模块与上一篇文章中的修复模块冲突,请先卸载之前的模块,再启用这个模块。重启平板之后,你应该会发现:

    • 亮度调节的最低档不再是「伸手不见五指」之黑了
    • 在系统设置中的 Phh Treble Settings / Lenovo features 中可以启用 DT2W

    不过可惜的是,磁吸锁屏开关功能还是无效。可能是缺少驱动程序导致的

    解决问题的历程

    自动亮度、自动旋转、亮度等级

    参考 Y700 模块的内容,自动亮度、亮度等级这类设置可以通过 vendor_hardware_overlay 控制。最简单的做法就是从原厂镜像中提取这些配置文件,然后通过 Magisk 模块安装到设备上。

    对于小新 Pad 而言,提取原厂文件的方法很简单,直接「只读」挂载原厂镜像的 system.img 文件就好了:

    sudo mount -t ext4 -o loop,ro ./system.img ./payload-fs/sys
    

    接着参考这篇帖子的内容 操作,就可以得到原厂的 hardware overlay。这篇帖子用到了 phhusson/vendor_hardware_overlay 项目,该项目并不能支持所有的厂商 hardware overlay 配置,需要手动删除不支持的配置。这是一个非常繁琐的体力操作,我制作了一个小工具来简化这一个过程:

    1. 把全部的 vender hardware overlay 文件拷贝到 phhusson/vendor_hardware_overlay 项目
    2. 执行下面的代码,导出所有不兼容的配置到一个临时文件中
    # 在 phhusson/vendor_hardware_overlay 根目录下执行
    ./tests/tests.sh | grep J716F | tee test-out
    
    1. 手动编译这个工具 https://github.com/ZeekoZhu/projects/tree/gsi-overlay-tool/apps/gsi-overlay-tool ,使用 fix 命令批量删除所有不兼容的配置
    ./dist/apps/gsi-overlay-tool/net7.0/GsiOverlayTool fix /path/to/test-out /path/to/phhusson/vendor_hardware_overlay/overlay/
    

    得到设备的 overlay 文件后,打包生成一个 apk 文件,放到一个 Magisk 模块中即可(参考操作)。

  • 给小新 Pad Pro 2021 刷入 GSI 镜像

    一些关于折腾联想小新 Pad Pro 2021 的记录

    2 / 3 of 小新 Pad Pro 2021

    上回书说道,我成功解锁了小新 Pad Pro 2021,但解锁不是最终目的,让 Pad 用上不那么拉胯的原生安卓才算成功。

    准备工作

    • android-platform-tools
    • 一台已经解锁了 bootloader 的小新 Pad
      • 需要已经升级到 ZUI 14,否则自动旋转会有故障
    • 一个心仪的 GSI 镜像,你可以在这里挑选,我选择的是带有完整 GApps 的 LineageOS 19 GSI 镜像。
    • 原厂固件中解压得到的 vbmeta.img 跟 boot.img
    • 用来启用自动亮度调节的 Magisk 模块

    开搞

    下面的内容主要参考这篇帖子

    首先进入平板系统,启用开发者模式,允许 adb 调试,然后通过 USB 连接到电脑。接着在电脑上执行下面的命令:

    $ adb reboot bootloader
    $ fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    $ fastboot reboot fastboot
    $ fastboot flash system your-gsi-system.img

    继续通过平板上的音量键,进入 Recovery 模式,然后选择清除数据(工厂模式重置),最后重启设备。

    第一次启动可能会比较慢,如果发现卡在联想 Logo 页面超过了 3 分钟了,可以长按电源键重启设备,一次不行,就多试几次,这种情况通常只会出现在第一次启动系统。

    提高使用体验

    在 LineageOS 19 中,以往小新 Pad Pro GSI 系统中会遇到的自动旋转失效问题已经不存在了。但是原生安卓缺少国产 ROM 的“平行视界”功能,运行不适配横屏模式的应用的体验跟 iPad OS 一样,会强制竖屏。所以还是得安装一个旋转管理器,强制部分应用横屏展示得忍受一下 UI 错位 ,我用的是这个 Xposed 模块 —— 自由屏幕旋转

    另一个提高不适配横屏应用使用体验的方法就是安装 米窗 ,可以用来替代 ZUI 自带的小窗功能,据说把它设置为系统应用体验会更好,但是因为 GSI 已经不会随便杀后台了,所以我也没有对它做特别地处理。

    自动亮度调节功能需要刷入启用自动亮度调节的 Magisk 模块,默认的自动亮度会偏暗,但是 Android 12 有自适应亮度调节功能,会根据用户手动调节亮度条的习惯调整自动亮度的明暗,经过几天体验下来,自动亮度调节功能基本正常。

    原生系统的后台管理机制比较宽松,为了能让垃圾应用退出后老实一些,我选择用 scene4 的“应用偏见”自动冻结垃圾国产应用(例如,淘宝、京东)。

    至于快充,由于我的手机充电速度是 Pad 的 6 倍,实在很难感受到是否存在快充变慢的情况。至少系统界面会在使用原装充电器的时候显示 “Charging Rapidly”的文字。

    关于续航,Lineage OS 系统设置中有一个默认启用的 Screen Saver 选项,这是一个类似“常亮显示”的功能,会在屏幕熄灭后在屏幕上显示一个时钟。小新 Pad Pro 虽然使用的是 A 屏,但是硬件设计上可能压根不支持“常量显示”,导致屏幕耗电量剧增。实测关掉 Screen Saver 后,待机续航可以提升一倍(从一天不到提升到两天),而且充电速度也会有明显的提升。

  • 不靠官方,自己动手解锁小新 Pad Pro

    一些关于折腾联想小新 Pad Pro 2021 的记录

    1 / 3 of 小新 Pad Pro 2021

    联想小新 Pad 的 官方解锁页面下线了,客服也不回邮件,为了摆脱疯狂杀后台的 ZUI,我决定尝试自己动手为小新 Pad Pro 2021 解锁,刷入第三方 ROM。

    本文内容主要参考这篇帖子编写,并在原帖基础上补充了一些避免实操踩坑的细节。这个文章的方法对于小新 Pad 2022 可能同样有效?

    准备工作

    • 基础的计算机命令行操作能力
    • 认识 16 进制
    • Windows 电脑
    • 你的小新 Pad 的序列号,关机后按住音量 – 和电源键开机,进入 bootloader 模式后就可以看见序列号
    • 高通刷机工具 QPST
    • 小新 Pad Pro 2021(Lenovo P11 TB-J716F)原厂固件
    • android-platform-tool 这个都不知道在哪里下载还是建议不要刷机了
    • 一个二进制文件编辑器
    • 一个用来解锁 Bootloader 的 sn.img 文件,这个文件对应的设备序列号是 HAHAHAHA

    开搞

    1. 下载并安装 QPST 工具,也请一并安装附带的驱动程序。安装完成后从开始菜单找到 QFIL 工具并启动
    2. 解压原厂固件到文件夹,请确保文件夹的路径没有空格、中文等特殊字符
    3. 在 QFIL 选择 flat build 选项,选中刚刚解压出来的 prog_firehose_ddr.elf 作为 Programmer 文件
    4. 将 Pad 关机,等到完全息屏后按住音量 + ,再将 Pad 通过 USB 连接到电脑上,这时 Pad 会进入 EDL 模式。EDL 模式跟 fastboot 有一个很大的不同,如果一段时间内没有操作,EDL 模式会超时,这时 QFIL 工具虽然还能检测到连接上的设备,但是对设备的操作都会失败。
    5. 打开 QFIL 工具的 Tools 菜单,选择 Partition Manager,等待几秒,会弹出一个新的窗口
    6. 新窗口中选择 fpinfo 分区,右键点击,选择 Manage Partition
    7. 点击 Read Data,QFIL 从设备上下载数据并存放到  AppData\Roaming\Qualcomm\QFIL\COMPORT_xxx
    8. 备份刚刚下载的文件,文件名包含数据分区的地址 0x2208,这个文件里面存储了你设备的序列号,请务必小心保管
    9. 使用二进制编辑器编辑上述文件的一个副本,把文件开头的序列号替换为 HAHAHAHA
    10. 回到 QFIL,点击 Load Image 把刚刚编辑后的文件上传到设备上
    11. 接着用同样的办法下载 frp 分区文件,文件名包含数据分区的地址 0x2188,也请妥善备份这个文件
    12. 使用二进制编辑器编辑上述文件的一个副本,把文件末尾的最后一个字节从 00 改为 01,如果你的文件末尾已经是 01 了,可以直接跳转到第 14 步
    13. 回到 QFIL,点击 Load Image 把刚刚替换的文件上传到设备上
    14. 点击 Close,等待 EDL 模式重置完成后,拔出线缆
    15. 按住电源键跟音量 -,开机后进入 bootloader 模式,切记,此时千万不要进入 Android 系统,否则刚刚进行的修改会被还原。
    16. 进入 bootloader 后,屏幕上显示的序列号应该为 HAHAHAHA。如果发现修改没有生效,请重新执行上面 4 ~ 14 步的操作,注意自己的操作是否有遗漏。
    17. 执行命令: fastboot flash unlock sn.img
    18. 执行命令: fastboot oem unlock-go
    19. 恭喜你,你的设备已经成功解锁 bootloader
    20. 最后收尾,参考之前的步骤,使用 QFIL 工具还原 0x2208 以及 0x2188 分区。