很久以前,在国内是可以正常使用 Google 的。坑爹的我后来稀里糊涂地买了个运营商定制版 Galaxy S4,几乎没人用的机型,自然找不到适配的软件,也没人找漏洞尝试 root,连第三方 Recovery 都是奢望。幸运的是,我找到了能用的 Recovery~ 终于能动手啦!

一、制作 GMS 补丁包

建立Google-Installer目录,结构如下:

Google-Installer
├── META-INF
│   └── com
│       └── google
│           └── android
│               ├── update-binary
│               └── update-script
└── system
    └── priv-app
        ├── GoogleAccountManager
        │   └── GoogleAccountManager.apk
        ├── GooglePlayServices
        │   └── GooglePlayServices.apk
        ├── GooglePlayStore
        │   └── GooglePlayStore.apk
        └── GoogleServiceFramework
            └── GoogleServiceFramework.apk

1、应用文件

其中四个 apk 可以自己去可信的网站上寻找,注意要选择兼容手机系统和 CPU 的版本 (适用Android 4+还是Android 5+,适用32位还是64位,适用屏幕分辨率等等)。推荐去国外著名的 ApkPureApkMirror 上寻找所需的 apk,此二网站大多 apk 文件直接从 GooglePlay 原生提取,比较可信。

2、脚本文件

update-binaryupdate-script是 recovery 读取执行命令的文件,使用edify脚本语言,点此前往项目地址,查看命令语法等。

update-script

update-script可参考我写的版本,核心代码如下(recovery版本不同可能会略有区别):

run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
set_perm_recursive(0, 0, 0755, 0644, "/system/priv-app");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Installation succeeded!");

可以从中看出主要操作:

  • 使用busybox挂载手机文件系统/system目录
  • 把压缩包中的system目录解压合并到/system挂载点
  • 设置权限,并且为目录递归操作,拥有者为root用户root组,目录权限串为drwxr-xr-x,普通文件-rw-r--r--
  • 卸载/system目录
update-binary

update-binary,如今的情况或许有些不同了,实际上可能需要把上面的代码写入这个文件,而update-script的内容则为dummy,也就是“做做样子”的意思。因为当今各类定制 Recovery 大多都已包含了常用函数库,不再需要外部载入了。

3、打包

Google-Installer目录下的内容压缩为普通zip包,名称最好不要包含中文,注意保持目录结构是这样的:

xxx.zip
├── META-INF/
└── system/

而不是:

xxx.zip
└── Google-Installer/
    ├── META-INF/
    └── system/

二、 刷入定制 Recovery

手中的三星 S4 能用工程工具 Odin 刷 recovery(没有 bootloader 锁或者 OEM 锁,方便了很多)


三、刷入补丁包

补丁包放入手机存储空间或SD卡中。进入定制 recovery,选择制作好的包,确定。重启完成!