宅科技 - 科技,宅出新生活

搜索
热搜: 活动 交友 discuz
如果你还没有论坛的账号,赶快注册吧!
立即注册

合作站点账号登陆

快捷导航
查看: 4368|回复: 3

[知识点] 修复ROM的Google或者其它网络定位

[复制链接] [提交至百度]

124

主题

133

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
32744
发表于 2020-2-29 23:26:42 | 显示全部楼层 |阅读模式
扫码领红包
本帖最后由 Jimoy 于 2020-2-29 23:36 编辑

前言
一些定制、第三方 ROM 在安装了 Google 框架后,仍然无法使用其网络定位功能。我在网上搜索了许多资料,整理如下。本文假设你的设备已经 Root,并已经安装了 Google 框架。当然,修改其它定位,也是类似,可作为参考》

一、准备工具
需要准备的工具有 zip、unzip(解压缩工具就不用另外准备了)、apktool(反编译工具)、adb、zipalign(可忽略),以及一个好使的文本编辑器。
反编译工具下载:点击前往
adb工具下载:点击前往


二、提取需要的资源
取出 ROM 中的 framework-res.apk,并反编译得到需要修改的文件:
  1. adb pull /system/framework/framework-res.apk
  2. apktool if framework-res.apk
  3. 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,使得最终结果类似这样:
  1. <string-array name="config_locationProviderPackageNames">
  2.         <item>com.google.android.gms</item>
  3.         <item>com.android.location.fused</item>
  4.         <item>com.amap.android.location</item>
  5.     </string-array>
复制代码


2、修改 framework-res/res/values/bools.xml,启用 config_enableNetworkLocationOverlay 和 config_enableFusedLocationOverlay。如果原来的值是 false,把它们改成 true:
  1. <bool name="config_enableNetworkLocationOverlay">true</bool>
  2.     <bool name="config_enableFusedLocationOverlay">true</bool>
复制代码


3、修改 framework-res/res/values/strings.xml,设置 config_networkLocationProviderPackageName 为 com.google.android.gms。
  1. <string name="config_networkLocationProviderPackageName">com.google.android.gms</string>
复制代码


(我一并修改了 config_fusedLocationProviderPackageName 为 com.android.location.fused,虽然可能是不必要的)四、应用修改1、重新编译,并从结果中提取出需要的部分:
  1. apktool b framework-res
  2. unzip -j framework-res/dist/framework-res.apk resources.arsc -d ./
复制代码


2、将提取出的文件替换到原来的 framework-res.apk 中:
  1. cp framework-res.apk framework-res-modified.apk
  2. zip -0 framework-res-modified.apk resources.arsc
复制代码


3、对资源进行 4 字节对齐处理:
  1. zipalign 4 framework-res-modified.apk framework-res-aligned.apk
复制代码


4、将修改后的 ROM 和更新脚本上传到手机:这个更新脚本是我自己写的,主要处理了权限问题:
install-framework-res.sh:
  1. #!/bin/sh
  2. mount -o remount,rw /system
  3. mv "$1" /system/framework-res.apk
  4. chmod 644 /system/framework-res.apk
  5. chown root:root /system/framework-res.apk
  6. mv /system/framework-res.apk /system/framework/framework-res.apk
复制代码


和修改后的 framework-res-aligned.apk 一起上传到手机:
  1. adb push framework-res-aligned.apk install-framework-res.sh /sdcard/
复制代码


5、运行脚本,替换 apk 文件:
adb shell
如果此时得到了 $ 命令符,请先获得  root:
su然后运行脚本:
  1. sh /sdcard/install-framework-res.sh /sdcard/framework-res-aligned.apk
复制代码


6、重启到 Recovery,清空 Cache & Dalvik Cache,再次重启回到系统。至此,你的手机应该重新拥有了网络定位功能,赶快打开一个除地图以外的需要定位的 App (比如 Ingress)测试吧!



上一篇:Busybox强大的安卓工具箱下载
下一篇:安卓系统源码编译--so库的源码路径列表
回复

使用道具 举报

0

主题

51

帖子

55

积分

提鞋小弟

Rank: 2

积分
55
发表于 2020-3-1 00:53:30 | 显示全部楼层
谢分享,谢谢!感谢分享,
回复 支持 反对

使用道具 举报

0

主题

99

帖子

99

积分

提鞋小弟

Rank: 2

积分
99
发表于 2024-4-28 01:09:16 | 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

0

主题

99

帖子

99

积分

提鞋小弟

Rank: 2

积分
99
发表于 2024-4-28 01:09:58 | 显示全部楼层
6666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

抖音账号
关注抖音
查看在线教程,私信咨询


手机版|小黑屋|网站地图|宅科技 ( 粤ICP备15107403号

GMT+8, 2024-11-23 16:40 , Processed in 0.125232 second(s), 25 queries .

Copyright © 2016 宅科技 | 智能终端极客社区

Powered by Discuz! X3.4 Licensed

快速回复 返回顶部 返回列表