修复 Android ROM 的 Google 网络定位

一些定制、第三方 ROM 在安装了 Google 框架后,仍然无法使用其网络定位功能。我在网上搜索了许多资料,整理如下。

本文假设你的设备已经 Root,并已经安装了 Google 框架。我测试用的 ROM 为一加氢 OS。

一、准备工具

需要准备的工具有 zip、unzip、apktool、adb、zipalign,以及一个好使的文本编辑器。

(注意 zipalign 工具可能不在 $PATH 中,如 Arch AUR 包 android-sdk-build-tools 安装后会放在 /opt/android-sdk/build-tools/$pkgver/zipalign)

二、提取需要的资源

取出 ROM 中的 framework-res.apk,并反编译得到需要修改的文件:

adb pull /system/framework/framework-res.apk
apktool if framework-res.apk
apktool d framework-res.apk

三、修改文件

修改位置提供商相关设置,使用 Google 提供网络定位。

1、修改 framework-res/res/values/arrays.xml,找到 config_locationProviderPackageNames 的位置,确保 Google 在列表中。如我的 ROM 默认只有 com.android.location.fused 和 com.amap.android.location 两项,这时应当加入 com.google.android.gms,使得最终结果类似这样:

    
        com.google.android.gms
        com.android.location.fused
        com.amap.android.location
    

Continue reading 修复 Android ROM 的 Google 网络定位

不双清给一加氢 OS 刷上 Google Apps

最近入爪一台一加 3,解锁刷 root 后几乎配置完了所有东西,然后才发现忘记了 gapps。网上看到许多人在这种情况下刷 gapps 遇到了各种各样的问题,一般都被建议双清解决。我查找了一些资料后,决定试试不双清自己修复权限问题。

安装 OpenGApps

这里的假设是已经刷过第三方 Recovery,我这里是 TWRP。从 OpenGApps 网站下载对应的包(我这里对应的是 ARM64、6.0),我选择了 nano 包。

重启进入 Recovery 刷入此包。然后不要急着重启,因为大量网友反应此时重启后会不断 fc。我在一加论坛找到了这样的方法,经实测有效(针对 TWRP,其他 Recovery 请自行调整):此时应回到 Recovery 首页,进入 Mount 页面勾上 System,然后回到首页依次选择 Advanced -> File Manager -> system -> priv-app -> SetupWizard,然后点击右下的选择气泡,最后点击 Delete 删除这个文件夹。

重启正常进入系统后,点击 Google Play 或直接添加 Google 帐号即可。

遇到的问题

一、Google Play 无法正常下载应用

Google Play 下载或更新任何应用时,提示 DF-DLA-15 错误。我找到的方法是进入应用管理清空 Google Play 及 Google Play Services 的数据后重试。

二、Google 联系人同步选项消失

帐户管理中的 Google 帐号内只剩下健身、人脉、应用数据,联系人同步不见踪影。Reddit 上有人指出授权 sync adapter 读写联系人即可,但 H2OS 的应用管理界面中似乎没有办法直接操作,因此我用 adb 手动进行了授权:

$ adb shell
$ pm grant com.google.android.syncadapters.contacts android.permission.READ_CONTACTS
$ pm grant com.google.android.syncadapters.contacts android.permission.WRITE_CONTACTS

执行后,重启手机即可,不需要如原文所说删除、重新添加 Google 帐号。

更新:此方法在三星 Galaxy Note 7 原生系统上也测试成功,理论上还可以推广到更多系统。有遇到 Google Play Services 不断崩溃退出的问题,另 grant 了如下权限解决:

$ pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION

Android 里安全上 QQ 的新方法

QQ Windows版偷偷做坏事的事情已经被争论了很久很久了, 作为一个终端用户, 我自然希望风险越小越好…
然而, 自从 aQQ For Android 被封杀以后, 手机上QQ就没什么好方法了…官方QQ特别臃肿, 而 QQ For Pad 更是带了个虚拟桌面出来, 无用功能实在太多.

不过, jimmy 酱 上次给我看的一个限制应用程序权限的方法, 给了我一个启发.. 像我这样的轻度QQ用户(只是偶尔需要和QQ上几个特定的人联系), 在手机上为此装个QQ而且整天挂着, 实在是太重口了…
而 QQ For Pad 带了一个系统桌面挂件, 可以添加六个联系人, 可以和他们之间收发消息, 支持图片发送接受, 支持语音视频聊天(各种美)… 本猫在尝试禁止它的一些权限后, 现在认为这个方法比较靠谱, 也比较安全, 因此共享出来 🙂

下面是配置步骤(真的不会很复杂的= =). 哦对了, 这是使用 CM 的 ROM 时的配置方法, 其他 ROM 我不清楚是否可以这么用, 以及怎么用…

1, 首先从菜市场正常安装 QQ For Pad

Continue reading Android 里安全上 QQ 的新方法

Android 2.2 Froyo 完美安装 OpenVPN

刷上 Froyo 的盆友们在安装 OpenVPN 的时候会怨念的发现, “明明在 OpenVPN Settings 里显示已连接, 却连一点连接上了的感觉都没有呢?”
如果在终端里手动键入 openvpn 的命令来获得反馈的 log, 会得到下面这样让你感到十分 confused 的结果:

Sat Jul  3 13:30:58 2010 Options error: Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:4: route (2.1.1)
Sat Jul  3 13:30:58 2010 Options error: Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:7: ifconfig (2.1.1)

神马? 找不到哥的 route 和 ifconfig 命令? 他们都很乖的呆在 /system/xbin 里呢…

恩, 这貌似是一个已知的 bug ,暂时可以用下面的猥琐方法给 workaround 掉:
首先, 你要保证你的内核有 tun 设备. 如果没有, 则需要到网上找到对应你内核版本的 tun.ko 文件手动刷进去:) (这些内容就不再赘述)
然后, 进入你的 root 终端, 输入下面的命令:

mkdir /system/xbin/bb
ln -s /system/xbin/ifconfig /system/xbin/bb/
ln -s /system/xbin/route /system/xbin/bb/

然后, 像你以前做的一样, 进 Market 装上 OpenVPN Installer.
注意: 安装Binary的时候选择route等命令的路径到 /system/xbin/bb
然后…恭喜你, 就这么简单:)

参考资料: http://code.google.com/p/android-openvpn-installer/issues/detail?id=2

Felix 的 60 个 Android App 推荐

本猫入爪机(T-Mobile G2)半月, 折腾ROM/Kernel/App无数=.=
现在我安装了下面这些常用到的App(Google自带的就不提啦), 供分享, 供参考.

1, 3G Watchdog Pro
流量监控 最靠谱的一个… 有时候比ISP统计的还多一点点, 总之不会少 🙂
有按月/周/天的统计报表, 有一个还不错的Widget, 而且, 能显示每个App使用了多少流量 🙂

2, Adfree
恩, 各种去广告, 很多时候还是不错的 XD

3, Adobe Flash Player
为了优酷/土豆, 不得不弄一个=.=

4, Advanced Task Killer Free
杀进程用的Tool, 目前觉得它最正常=.=

5, Angry Birds
额, 这个..你懂的…(还有Seasons版)

Continue reading Felix 的 60 个 Android App 推荐
QR Code Business Card