首页 > 其他分享 >近期关于格力手机2(G0215D)的折腾

近期关于格力手机2(G0215D)的折腾

时间:2023-06-24 10:22:07浏览次数:42  
标签:浏览器 app 格力 framework 折腾 G0215D webview com android

手里有台 G0215D 本来已经退役了,但是前段时间匪夷所思地损失了两台手机后,不得已又翻出来重新服役。结果尴尬地发现,格力的手机团队已经跑路了。OTA升级已经挂了,提示有个24M的升级包,但是一直下载不了;应用市场已经打不开了,闪退。很多小问题,不解决根本就没法用。其中最大的问题是 webview 过时,导致很多 app 运行不正常。

下面开整

一、root

我基本上是按照这篇文章操作的: https://blog.csdn.net/qq_26803399/article/details/120018086

基本原理:在高版本上似乎不能正常解锁 Bootloader,需要降级才行。

该文所用的降级固件 G0215D_QFIL_images 版本号类似于 "G0215D-userdebug 6.0.1 MMB29M"。明显是调试用的工厂固件,可以想象会打开很多调试开关。很多人反映该固件卡顿,耗电严重。

刷入该固件后可以进入开发者模式,解锁 Bootloader。然后就可以进入 fastboot 刷入 twrp recovery 了。有了 twrp 就可以刷入 SuperSU, 获取 root 权限。

我尝试过刷入 Magisk 修补过的 boot.img,无限重启,放弃。

二、恢复正常的产品固件

官方固件极难寻找,部分刷机网站有收录,但是要花钱买。关键是花了钱还要捏着鼻子给某网盘充VIP,这就不能忍了。

我在本贴吧闲逛时无意间发现了这样一个链接: http://fotadown.mayitek.com/ota/root_data02_2/gree/GREE8996_6.0/G0215D/zh/other/HALO 1.2.1 D1/2017042519000170843.zip

从这个链接可以下载到 1.2.1 D1 版本的OTA固件,从URL看,这似乎就是官方所使用的OTA平台,我大胆猜测,平台上应该不止这一个版本,但是因为服务器不支持目录浏览,文件名又猜测不出来。所以目前能下载到的只有这个。希望有权限接触到服务器的人能够为社区提供一个备份。

升级到这个版本后,再次用 twrp 刷入 SuperSU, 成功取得 root。

目前这个版本没有大的问题,日常使用没问题。

三、升级 webview

我 root 的目的,其实就是为了升级 webview。

webview 是一个浏览器组件,可以简单地将它理解成一个 chromium 浏览器,它的用处是供第三方app调用,使得第三方app不用自己实现一个浏览器内核就能渲染web页面。很多app依赖webview,比如微信。

G0215d 内置的 webview 版本比较老旧,我记得是 44.x.xxxx,很多app运行不正常(某些页面显示空白),最显著的问题就是无法登陆微信。输入密码之后,原本会弹出一个拼图验证页面,这个页面是用h5实现的,在老旧的手机上,这个验证页面无法正常打开,表现是一直在转圈。这就是 webview 过时的症状。

webview 本身是可以独立升级的,但是问题在于,它经历过一个改名过程。原本的包名是“com.android.webview",后来改成了”com.google.android.webview“。也就是说,即使你安装了新版的webview也没用,因为系统内注册的webview提供者仍然是老旧的 "com.android.webview" 这个包。这个包名已经硬编码在 framework 中了。

下面的升级方法来源于: https://gist.github.com/ppoffice/9ce9790708eeabbec1281467e25139e4

步骤的顺序极为重要, 不要搞反了!

  1. 从 apkmirror 下载一个老旧的 Android System Webview,我下载的版本是 50.0.2661.86。这里为什么要下载老旧版本后面解释。

  2. 将下载的下载来的 apk 改名为 webview.apk,它其实是个zip格式的压缩包,用解压缩软件将包里面的 lib 子目录提取出来,和 apk 包本身放在同一级目录底下。结构大概是这样子的:

    子目录/
    |- lib/
    | |- arm64-v8a/
    | |- armeabi-v7a/
    |- webview.apk

  3. 在手机的 /system/app 目录里新建一个子目录,就叫com.google.android.webview好了。

  4. 将下载的 webview.apk 连同子目录 lib 一起复制到手机的 /system/app/com.google.android.webview目录下面。重启,确认手机里同时安装了两个 Android System Webview app. 可以在应用管理中查看,最稳妥的是用 adb 检查:

    adb shell pm list packages | grep webview
    package:com.android.webview --> the built-in and outdated webview
    package:com.google.android.webview --> our new webview

上面的是系统自带的, 下面是我自己安装的。

  1. 将手机中的 /system/framework/framework-res.apk 弄到电脑中,用 apktool 反编译(需要事先安装 apktool):

    apktool d framework-res.apk

得到一个 framework-res 文件夹,编辑其中的 framework-res/res/values/strings.xml,将

<string name="config_webViewPackageName">com.android.webview</string>

这一行改为:

<string name="config_webViewPackageName">com.google.android.webview</string>

保存,再重新打包:

apktool b framework-res -c

新生成的包位于 framework-res/dist/framework-res.apk ,将它复制到手机的 /system/framework/ 目录里面,覆盖掉原来的 apk。此时,系统会自动重启(其实并非真的重启)。进入系统后长按电源键,真正地重启一次。再进入系统应该就正常了。

  1. 故事到这里本来应该结束了,但是其实还不行。我们安装到系统中的 com.google.android.webview 包运行并不正常。具体什么原因不清楚。打开系统内置的浏览器(其实它是个UC浏览器)闪退。安装了 via 浏览器后报错,打不开任何页面。最后的解决办法是,下载一个新版的 Android System Webview 包,将它安装在用户空间中(更新)。我下载的版本是 106.0.5249.126。安装后再打开内置浏览器,一切正常,打开 via 浏览器也正常。用 via 浏览器搜索一个 html5 测试页面,显示正常,检查浏览器 us-agent, 确认是 106.0.5249.126.

再打开微信,输入登陆密码后,顺利地打开拼图验证页面,成功登陆。

在前面的步骤中,将老旧的 50.0.2661.86 版本安装为系统app的原因是,比它新的版本都可以在用户空间中随意试,随意删除。不再需要改动system分区。

题外:

既然已经有了 root 权限,安装一个 NFC卡模拟 app, 搭配本机的 NFC 功能,可以将门禁卡复制到手机中,用手机开门了。

标签:浏览器,app,格力,framework,折腾,G0215D,webview,com,android
From: https://www.cnblogs.com/zh-geek/p/17500761.html

相关文章

  • 悟空派WuKongPi/香橙派orangepi zero全志H3折腾记录(②kernel移植)
    接上一节,这节开始移植内核。 首先获取一下内核源码,这里仍然使用香橙派的源码gitclonehttps://github.com/orangepi-xunlong/linux-orangepi.git 进入kernel根目录并切换到orangepizero使用的分支gitcheckoutremotes/origin/orange-pi-5.4 然后安装编译内核可......
  • OPNsense 系列六:硬盘物理机折腾手记
    文章说明本系列六文章存于Gitee上:Yogile/OPNsense_Toss_Notes。本系列文章涉及的部分参数需要手动调整来符合切实使用需求。随着OPNsense的迭代更新,截图中的内容和实际页面显示可能存在差异。本仓库基于狐狸Nomad文章进行个性化更改。如需引用,请注明原文(狐狸Nomad......
  • 悟空派WuKongPi全志H3(香橙派orangepi zero)折腾记录(u-boot移植)
    最近在某宝上看到一个悟空派,仔细一看这不就是香橙派orangepizero吗,不过它的USB是Type-C,于是我买了一块打算折腾一下。 拿到了首先获取一下u-boot源码,因为板子和香橙派orangepizero一样就直接用香橙派的源码了gitclonehttps://github.com/orangepi-xunlong/u-boot-orange......
  • Latex编译器推荐(面向初学者或者懒得折腾的朋友,主要针对windows用户)
    原文链接:https://blog.sciencenet.cn/blog-478347-1215384.html大家平时用的最多的排版工具想必就是Microsort的Word或者WPS了,所见即所得,Latex是另外一种排版工具,需要编译才可以生成pdf。相信大家在投稿的时候,会发现很多杂志都提供的textemplate。至于Latex好还是word好,这个已......
  • Jamie Zawinski访谈:在折腾中成长 (zz.IS2120)
    //z2012-09-2622:24:[email protected][T51,L1560,R32,V428]Zawinski:那终究只是理论。Seibel:是的,不过有时这个理论也能成真,只要主事者有良好的判断力,框架也不是太过精致,的确能节省时间。你能讲讲自己属于哪一类吗?Zawinski:虽然是陈词滥调,不过我还是要重提:更差就是......
  • 一次折腾 Golang 泛型、反射和 gorm 框架的记录
    事情的起初是一个很常见的需求:批量更新多条记录的相同字段,每条记录对应的字段值不同因此无法批量Update。看着没啥难度却没想到从开头到结束整整花了一天的时间,遂有此文。首先尝试了gorm自带的Save(),按理说gorm本身会自动识别零值不去更新,这样直接创建一个实例数组挨个赋值......
  • 折腾野火linux板子学到的东西
    添加编译器相关添加交叉工具链,需要修改/etc/profile修改完成后,需要立即生效(不需要重启),可以使用如下命令:source/etc/profile 如果遇到环境变量配置以后,能够找到版本(也就是说输入命令的开头按tab以后能够出现补全),如果还有问题,这是因为64位下运行32编译器缺少相应的库文......
  • [Linux]折腾备忘录
    在vi~/.bashrcsource~/.bashrc 添加 exportHOSTIP=$(cat/etc/resolv.conf|grep"nameserver"|cut-f2-d"")exporthttp_proxy="http://$HOSTIP:7890"exporthttps_proxy="http://$HOSTIP:7890"exportall_pro......
  • 在DongshanPI-D1开箱使用分享与折腾记录&实现MPU6050数据读取
    前言上一篇文章使用RT-Smart的IIC驱动OLED屏幕,进行基本的字符串显示,在使用过程中对RT-Smart有了一定熟悉,准备使用SPI驱动ST7789,但SPI接口没有引出,本次使用手上已有的传感器MPU6050进行使用。过程本次直接开始添加离线包在/D1S/userapps/rt-thread/bsp/allwinner/d1s下输入scon......
  • ESP32 S3 折腾了几天IDE 终于跑成了Hello World
    真的这个环境配置真的太糟心了!不过跑起来了,哈哈哈Helloworld!Thisisesp32s3chipwith2CPUcore(s),WiFi/BLE,siliconrevisionv0.1,2MBexternalflashMini......