新版Opera Mini Android 7 修改服务器教程
近几天,opera公司发布了新版的operamini for android,也就是opera mini7,相对于之前的6.5版本来说,新版的确改进了不少,优化了许多东西,尤其增加了符合国人使用习惯的退出按钮。。。总之,新版较之前势必有所进步。
今天我下载了并尝试了修改服务器,使其能够穿墙使用,造福广大同胞,特此研究了一下,并将修改教程发布出来,希望各位指教,OPM7 for android 修改原理基本同6.5版本相同,只是有些细节需要注意,否则容易联网失败。
由于新出的OPM已经不再采用过去的直接将服务器地址嵌套进程序,而是自动联网获取分配服务器,就连语言包也是联网获取的,但依然有办法绕过限制继续做中转。我也尽可能把步骤写的详细。
一. 准备工作
首先,你需要的一个在PHP空间中架设好的中转服务器,具体的方法我就不必说了,比如我们上传好的服务器地址为:http://xxx.com/opm/
然后,需要修改的工具有
baksmali.jar (用于反编译.dex文件)
smali.jar (用于将修改好的文件重新打包成.dex文件)
Auto-Sign (用于对.apk文件进行签名)
Operamini7.apk(官方原版http://www.opera.com/mobile/download/)
我将以上四样东西打包放在这里下载,你可以直接使用备份下载.(由于安卓是采用Java语言编写,所以你的电脑要先安装Java环境,具体在www.java.com下载安装。)
二.反编译过程
首先,将operamini7.apk 扩展名改为.zip,即(operamini7.zip),此时可以用任意的解压缩工具将其打开,提取出其中的classes.dex文件,并与先前下载 好的smali.jar和baksmali.jar放置于同一个文件夹下,如: c:\opm7\ 。
打开CMD(开始-运行-CMD),进入c:\opm7\ 文件夹(cd c:\opm7\),输入以下命令:
java -jar baksmali.jar classes.dex -o classes
该指令会将classes.dex反编译为一系列文件并存放在 c:\opm7\classes\ 文件夹下。
三.修改服务器
这一步最重要,也容易出错,一定要认真,OPM7不通用之前的6.5, 所以需修改的smali文件不同,需要修改的文件包括.\classes\ 目录下的b.2.smali、aq.smali、g.smali三个文件,以及.\classes\com\opera\mini\android\目录 下的I.smali(注意是大写的I,里面有一个1.smali不要搞混了)文件。
用任意文本编辑器打开上述文件,并查找关键字 “http” (不含引号)。此时会找到若干行形如以下格式的文本:
const-string v1, “http”
const-string v1, “https”
const-string v0, “http://”
const-string v1, “http://10.0.0.172″
将所有找到的结果引号中的内容替换为你自己的服务器地址,注意并不是所有的http都要 替换,我总结到需要替换的类型有”http://10.0.0.172”和”http://”两种,其余的”http”和”https”不需要修改,如果 改动的话很容易造成联网失败,改后格式如下:
const-string v1, “http://xxx.com/opm/ “
const-string v2, “http://xxx.com/opm/ “
其中要改动地方有aq.smali中
Line 347: const-string v2,”http://10.0.0.172:80/“
Line 1612: const-string v3, “http://”
Line 2320: const-string v0, “http://10.0.0.172“
Line 5827: const-string v1, “http://”
b.smali中
Line 6910: const-string v0, “http://”
I.smali中
Line 1073: const-string v0, “http://10.0.0.172″
g.smali中
Line 4456: const-string v2, “http://”
其余都不要改!尤其http://mini.bugs.opera.com?pl=Android&version=7.0
http://mini5resource.opera-mini.net” http://nada:4711(这个是获取语言包的)都保持不动。
修改过程中你的中转地址前后加引号不要丢,另外域名最后一定要加/,不要漏掉
同样的方法,在.\classes\路径下的aq.smali中搜索关键字”socket“,将所有搜索到的结果修改为如下形式:
const-string v3, “socket:// http://xxx.com/opm/”
四.打包签名
保存所有的改动。再次回到CMD中,输入:
java -jar smali.jar classes
该命令将整个classes文件夹重新打包为.dex文件,此时在当前目录下会得到打包好的文件,名为: out.dex,将其重命名为classes.dex。
再次打开operamini7.zip压缩包,删除压缩包中原有的classes.dex文件及META-INF文件夹,并将刚才修改好的classes.dex文件添加到压缩包中。解压缩签名工具Auto-Sign.zip,将上一步中修改好的Opera_Mini_6_5_Android.zip文件放入解压后的Auto-Sign文件夹中,双击运行其中的 sign.bat 。不出意外的话,在Auto-Sign目录下,你会得到一个名为 your_app_signed.apk 的文件,这就是你想要的,大功告成。
附成品下载试用
最后呢,欢迎关注我的推特@jetzhang和个人博客http://jetzhang.com以便交流学习。
原文:http://jetzhang.com/archives/13
感谢推友jetzhang推荐,本文稍作编辑,不明白的可以向其咨询。
我看您7.5中地址后没有加/ 请问有问题吗 另外7.5中的socket要改哪里 谢谢您“修改过程中你的中转地址前后加引号不要丢,另外域名最后一定要加/,不要漏掉”
由于我没有测试过安卓手机,
你的问题建议您推特上咨询原文作者jetzhang
“修改过程中你的中转地址前后加引号不要丢,另外域名最后一定要加/,不要漏掉” 我看您7.5中地址后没有加/ 请问有问题吗 另外7.5中的socket要改哪里 谢谢您
试了一下午都不行,郁闷!
你的短网址老用国内的t.cn一下就没了啊,能多用用安全短网址吗?Google、Macfee什么的都行啊,干嘛一定要用t.cn啊?
博客文章有的是转载的,本文就是转载的,是原作者用的t.cn,我写文章都是不用的,呵呵
昨天改好,也成功了。换了台手机说网络错误,今天那个成功的也出错了(重安装了一次
下载了 好像不能用啊
可能是被封锁了,最好要学会自己搭建修改。
用任意文本编辑器打开上述文件,并查找关键字 “http” (不含引号)。此时会找到若干行形如以下格式的文本:这个怎样用
就按照步骤操作即可。
用任意文本编辑器打开上述文件
查找关键字 “http” (不含引号)
找到若干行形如以下格式的文本,修改后保存。
试了一下,还真的不错,不过那个 google搜索用的是google.com.hk 能否改成google.com呢?
这个应该是可以,你知道operamini如何添加搜素引擎就行了
震荡兄,能发我一个么
主要是不知道哪里有没墙的服务器公布
这个服务器要自己搭建。
有b.2.smali文件。另,socket:// http://xxx.com/opm/是可以的。我已测试成功。samsung i9000 cm9。我按博主上篇opm7改服篇也行。
哥们,你是用什么搭的服务器?googlecode上的opm-server-mirror?
我没有用过,呵呵,你可以问问文中推友。
opera7貌似对改服的手机号有限制 所以用老版本改服opera 在新版上会遇到网络错误
限制手机号?没听说过。
你好 按照您的方法试验了好多次 我估计是以前搭建的代理问题
请问你是用的代理是如何搭建的呢 我有一个ixweb共享空间
本文方法我没有测试过,您可以咨询原文作者。
php中转不是不支持socket么
socket不用改也行吧
道理上是怕socket原配置生效吧
另外文中的socket:// http://xxx.com/opm/应该是socket://xxx.com/opm/这样才对吧?
恩,可能是。
怎么没有b.2.smali这个文件,是不是作者写错了?
可能是b.smali文件吧
反编译之后再编译回去就变了~
为了方便改服,我在安卓平板上安装了java模拟器,然后安装可自定义服务器的opera mini。
这样改服极为简单,随时修改。
这个方法不错,呵呵