养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

添加国内天气源的教程 自定国内天气源教程

时间:2024-10-24 23:26:11

需要的条件:1.需要缬方焱蜱一个能够自由访问htc.accuweather.com的站点(我用的是我埠们萁猕自己的VPS)以及域名一个(没有域名的可以去申请tk免费顶级域名)2.如果是虚拟主机的话需要你会写php之类的服务器页面用于转发(我偷懒了,直接用Apache的ProxyMod)3.本文所需工具我已打包放到GoogleCode上,链接:http://code.google.com/p/hackerzhou/downloads/detail?name=Modify_HTC_Weather.rar

思路:通过改变客户端(com.htc.sync.provider.weather.apk)请求的地址,让其请求我们自己服务器,服务器则负责转发请求到真正的服务器并返回结果。(试验过通过修改hosts文件,但发现效果不理想,间歇性成功,怀疑移动做的是url匹配的过滤机制)

步骤:

1.改造客户端1)找到/system/app/目录下的com.htc.sync.provider.weather.apk,有些ROM是WeatherSyncProvider.apk文件,拷贝回电脑。2)使用apktools解包apk文件注意,会提示少framework,故先运行“apktoolifcom.htc.resources.apk”将需要的htcframework导入进来(com.htc.resources.apk在ROM的/system/framework/文件夹下,可以顺便把framework-res.apk也一起导进来)再执行“apktool.batd-fcom.htc.sync.provider.weather.apkcom.htc.sync.provider.weather\”3)查找包含htc.accuweather.com的smali文件,可以使用find命令(用法find“htc.accuweather.com”./*,就是在当前目录下查找,可以用find/?查看详细用法)4)定位到com.htc.sync.provider.weather\smali\com\htc\sync\provider\weather\,打开SyncService$Sync.smali,是用文本编辑器(推荐UltraEdit或者Notepad++之类的,不会破坏文件原有信息),查找“http://htc.accuweather.com”,替换成你自己搭建的服务器地址。5)执行“apktoolbcom.htc.sync.provider.weather\com.htc.sync.provider.weather.apk”打包成apk6)用signapk.jar进行签名”java-jarsignapk.jartestkey.x509.pemtestkey.pk8com.htc.sync.provider.weather.apkcom.htc.sync.provider.weather.signed.apk”进行签名(我第一次尝试时忘记签名,但是也不会报任何错,就是不能成功更新)7)将修改过的文件重命名为com.htc.sync.provider.weather.apk,并用adb执行“adbpushcom.htc.sync.provider.weather.apk/system/app/”写入手机文件系统中。

2.搭建服务器端支持由于我有服务器的root权限,因此就直接用apache提供的Proxy_Mod来完成请求的转发(相当于一个反向代理)增加一个VirtualHost,在配置文件里做如下修改<VirtualHost*:80>ServerNamexxxx.hackerzhou.me(此处为你客户端请求的域名)<Proxy*>Orderdeny,allowAllowfromall</Proxy>ProxyPass/http://htc.accuweather.com/ProxyPassReverse/http://htc.accuweather.com/</VirtualHost>如果大家没有主机root权限,只有虚拟主机的话,也可以自己动手,用php的curl写一个转发请求的脚本,应该也很容易的。

服务器和客户端都搞定了之后大家重启手机后就会发现,天气的同步又回来了。

详情请见安智论坛

© 一点知识