新版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推荐,本文稍作编辑,不明白的可以向其咨询。

  1. andylau
    2013年2月25日12:38

    我看您7.5中地址后没有加/ 请问有问题吗 另外7.5中的socket要改哪里 谢谢您“修改过程中你的中转地址前后加引号不要丢,另外域名最后一定要加/,不要漏掉”

    • iGFW
      2013年2月27日12:21

      由于我没有测试过安卓手机,
      你的问题建议您推特上咨询原文作者jetzhang

  2. andylau
    2013年2月25日12:37

    “修改过程中你的中转地址前后加引号不要丢,另外域名最后一定要加/,不要漏掉” 我看您7.5中地址后没有加/ 请问有问题吗 另外7.5中的socket要改哪里 谢谢您

  3. bearbearhj
    2012年8月3日19:45

    试了一下午都不行,郁闷!

  4. peanut
    2012年6月3日19:11

    你的短网址老用国内的t.cn一下就没了啊,能多用用安全短网址吗?Google、Macfee什么的都行啊,干嘛一定要用t.cn啊?

    • iGFW
      2012年6月3日19:16

      博客文章有的是转载的,本文就是转载的,是原作者用的t.cn,我写文章都是不用的,呵呵

  5. gayshyfool
    2012年5月2日08:37

    昨天改好,也成功了。换了台手机说网络错误,今天那个成功的也出错了(重安装了一次

  6. 1526
    2012年4月15日16:07

    下载了 好像不能用啊

    • iGFW
      2012年4月16日12:10

      可能是被封锁了,最好要学会自己搭建修改。

  7. 李诗杰
    2012年4月6日00:47

    用任意文本编辑器打开上述文件,并查找关键字 “http” (不含引号)。此时会找到若干行形如以下格式的文本:这个怎样用

    • iGFW
      2012年4月6日10:47

      就按照步骤操作即可。
      用任意文本编辑器打开上述文件
      查找关键字 “http” (不含引号)
      找到若干行形如以下格式的文本,修改后保存。

  8. 震荡波
    2012年4月3日20:58

    试了一下,还真的不错,不过那个 google搜索用的是google.com.hk 能否改成google.com呢?

    • iGFW
      2012年4月3日22:36

      这个应该是可以,你知道operamini如何添加搜素引擎就行了

    • 1526
      2012年4月15日16:54

      震荡兄,能发我一个么

  9. liuyuan624
    2012年4月2日19:24

    主要是不知道哪里有没墙的服务器公布

    • iGFW
      2012年4月2日21:25

      这个服务器要自己搭建。

  10. 流水鱼
    2012年4月1日19:37

    有b.2.smali文件。另,socket:// http://xxx.com/opm/是可以的。我已测试成功。samsung i9000 cm9。我按博主上篇opm7改服篇也行。

    • toctan
      2012年4月8日22:14

      哥们,你是用什么搭的服务器?googlecode上的opm-server-mirror?

      • iGFW
        2012年4月8日23:45

        我没有用过,呵呵,你可以问问文中推友。

  11. toto
    2012年4月1日09:18

    opera7貌似对改服的手机号有限制 所以用老版本改服opera 在新版上会遇到网络错误

    • iGFW
      2012年4月1日16:25

      限制手机号?没听说过。

  12. toto
    2012年4月1日05:34

    你好 按照您的方法试验了好多次 我估计是以前搭建的代理问题

    请问你是用的代理是如何搭建的呢 我有一个ixweb共享空间

    • iGFW
      2012年4月1日07:35

      本文方法我没有测试过,您可以咨询原文作者。

  13. toto
    2012年3月31日21:24

    php中转不是不支持socket么

    socket不用改也行吧

    • iGFW
      2012年3月31日22:17

      道理上是怕socket原配置生效吧

  14. lune
    2012年3月31日13:55
  15. lune
    2012年3月31日13:23

    怎么没有b.2.smali这个文件,是不是作者写错了?

    • iGFW
      2012年3月31日13:55

      可能是b.smali文件吧

      • fans
        2012年3月31日15:04

        反编译之后再编译回去就变了~

  16. test
    2012年3月31日11:28

    为了方便改服,我在安卓平板上安装了java模拟器,然后安装可自定义服务器的opera mini。
    这样改服极为简单,随时修改。

    • iGFW
      2012年3月31日12:12

      这个方法不错,呵呵