更新记录

  • 2017-10-03 Init

由于某天早上一不小心把一加3T给摔了,又不想花高昂的换屏费(京东报价544),便乘着一加五热季下单了8G内存128G存储版本。京东一如既往的神速配送在当天就把机子送到了我手中。

鉴于一加刷机保修的原则,果断开始折腾。按照一直以来的习惯:备份官方recovery,刷入TWRP,magisk(root),刷入opengapps nano,终于可以开始下回各种app、游戏(某不科学的上网就略过了)。

起初下载app一切正常,但是到开始下载一些大于100M(左右)的游戏的时候就会出现Error 0的提示并中断下载,这里忘了截图,就借用下网上的图吧:

Error_0

经过一下午不停的百度、Google未果,还是走向了logcat抓日志的道路。

logcat

然后终于在抓到日志中发现了一些蛛丝马迹:

Find issue in logcat result

结果竟然是因为没有写入权限щ(゚Д゚щ),虽然不知为何TWRP刷完opengapps会有这种情况,总之先尝试给予权限解决吧。

adb shell pm grant com.android.vending android.permission.WRITE_EXTERNAL_STORAGE

# 保险起见清理一下数据
adb shell pm clear com.android.vending

再次开始下载VOEZ 蘭空,这次出现了更奇怪的问题。。。竟然需要下载两次才能安装(启动游戏白屏),并且在最后出现了Error 911的提示:

Error_911

这回根据从搜索引擎获得的情报,只需要清除play store的数据就可以(然而并没什么软用,刚才也已经清过了)。

于是干脆查看它到底需要什么权限,然后全部给予吧/w\。

Get_apk_file

然后使用aapt获取所需权限列表,并一键给予(简单粗暴。。。):

apt d permissions com.android.vending.apk  | awk -F = '{print $2}' | sed "s/'//g" | sed '/^$/d' | xargs -i adb shell pm grant com.android.vending {}
apt d permissions com.android.vending.apk | grep -E '^permission'  | awk -F \:\  '{print $2}' | xargs -i adb shell pm grant com.android.vending {}

过程中会有一堆Operation not allowed之类的报错,对于成功的操作不会有任何返回,所以只能看到报错信息。如果上面的adbaapt命令没有的话apt install一下就好了(debian 9环境)。

接下来还是保险起见停止play商店服务并清除下数据,再次开始下载,结果一切正常且进入游戏也没有白屏:

Install_Success
It_Works

最后,如有必要的话可按上述操作将google全家桶的权限补完(反正我是这么做了)。