自建代理服务器实现OperaMini/UCweb*和谐*(Palm Android和黑莓众也可以来看看)

昨天在code.google.com找到opm-server-mirror这个项目,国人制作的(老外也没有*和谐*一说),试了一下,果真可以*和谐*上网。思路是这样的:

  • 在国外空间建立一个简单的代理服务器;
  • 修改JAVA版的Opera/Ucweb,使其默认指定到代理服务器;
  • 直接*和谐*上网。

具体的说明我引用一下:


如何修改Java(J2ME)版的UCWeb

搭建UCWeb的代理,跟Opera Mini一样,GAE的Java版或PHP版,方法基本上跟Opera Mini一样,注意UCWeb会挑IP的来返回不同服务器。

  • PHP空间不一定是要国外的,但用国外的更好,有的国外PHP空间IP依然返回国内地址,看人品。
  • GAE版目前还不会,但GAE可能在某些情况下不能访问,所以也是看人品。

然后就修改ucweb的jar文件,修改的例子版本是下面两个,但不保证以后的版本修改位置都一样,希望大家举一反三。

    假设代理地址为

    1. http://application-id.appspot.com/ucweb

    复制代码

    这里还是用Java Class File Editor,简称ce,是java程序,如用其它工具,参考本文修改的地方即可。

    1. 用压缩工具解压jar,运行ce

    • 6.7 载入“q.class”
    • 7.0 载入“am.class”

    2. 点击右上角的按钮,切换成“Modify Mode(on)”
    3. 切换到“Constant Pool”选项卡,右边区域里“Filter”选“Utf8“,点击“Apply”。
    4. 查找“999”,选中结果,改成“352”,点击“Modify”(再点击一下修改条目就看到修改结果了)
    5. 然后改代理地址

    • 6.7 查找“uc.ucweb.com:18075”
    • 7.0 查找“uc.ucweb.com:80”

    改成代理地址的域名“application-id.appspot.com”

    6. 地址还有一部分未改完,继续,

    • 6.7 查找“/?ucid”
    • 7.0 查找“/?dataver”

    是改查找结果的上一个“/”条目(因为直接查找“/”结果太多了,不容易定位),把“/”改成“/ucweb”

    7. 保存修改结果,把修改后的class,打包回jar(拉进原来的jar覆盖即可)。


    分割一下


    Java版的Opm代理服务端架设指南

    在GAE上架设
    注意:在某些地区或运营商可能已经无法访问GAE了,电脑能访问手机未必能访问,反之亦然,自己看着办。
    准备工作
    过程并不复杂,你需要三个软件和一个gmail帐号
    • Java虚拟机,Windows用户可到Java官方网站下载并安装,Linux用户可搜索发行版的软件仓库。
    • GAE 的开发包,可到Google Code的官方网站下载zip文件。
    • Java版的Opm代理服务端,可到opm-server-mirror项目的下载页获取。
    • 一个GAE application id,如果你没有,可到App Engine首页免费注册一个,记下这个id名称。

    上传程序
    准备好上述资源后,按下面顺序操作。注意:如果你的GAE application上传过Python程序,上传Java版会冲掉原先的程序,你可以再注册一个新的来上传。
    1. 解压GAE 的开发包和Java版的Opm代理服务端,并把后者的文件夹(如“Opm_java”复制到前者的目录下,即“appengine-java-sdk-1.2.6/Opm_java/”
    2. 用你喜爱的文本编辑器(记事本也行)修改“Opm_java/war/WEB-INF/appengine-web.xml”文件,找到一行
    1. <application>application-id</application>

    复制代码

    把“application-id”改成你注册到的GAE application id名称,修改好后保存。
    3. 接下来是命令操作了
    • Linux用户,打开终端,进入GAE 的开发包的目录,运行下面代码
    1. ./bin/appcfg.sh update Opm_java/war

    复制代码

    • Windows则用户,打开“命令提示符”,开始 -> 运行 ->输入cmd回车,进入GAE 的开发包的目录,如
    1. cd D:\appengine-java-sdk-1.2.6 bin\appcfg.cmd update Opm_java\war

    复制代码

    4. 脚本会提示输入你的Email地址,输入你的gmail地址,然后会提示输入密码。注意:输入密码时不会显示星号的,直接输入去就是。
    5. 等待上传完成,很快的,才几十K的文件,当出现下面一行表示成功了。
    1. Update completed successfully.

    复制代码

    6. 上传好后测试一下,浏览
    1. http://application-id.appspot.com/opm http://application-id.appspot.com/ucweb

    复制代码

    如果跳到Google首页,表示成功了。
    7. 接下来修改你的Opera Mini或UCWeb里面的服务器地址为上面的地址吧,不同版本的教程可以从Wiki页获得。
    8. 最后就进行你喜爱的体育运动。
    在其它Java EE容器上架设
    目前只测试过Tomcat
    • Tomcat,把“Opm_java”里的“war”文件夹改个名字如“Opm”,然后扔到Tomcat的“webapps”目录下,重启Tomcat,浏览“Opm/opm”就行了。

    高级设定
    修改代理网页的地址
    如果你不想用“opm”名称作为地址,想改成其它名称,如“opm.jsp”之类,可以修改“Opm_java/war/WEB-INF/web.xml”文件,找到下面一行
    1. <url-pattern>/opm</url-pattern>

    复制代码

    把“opm”改成你想要的名称,如“opm.jsp”,修改后保存,然后重新上传。
    编译源代码
    源代码文件放在“src”目录,里面就一个“OpmServlet.java”和“geronimo-servlet_2.5_spec-1.2.jar”文件,修改源代码后,可用下面命令来编译
    1. javac -d classpath geronimo-servlet_2.5_spec-1.2.jar -d ../war/WEB-INF/classes/ OpmServlet.java

    复制代码

    编译和好后也需要重新上传。

    分割一下


    OperaMini服务器地址修改器说明

    简介

    Opera Mini Server Changer是修改Java版的Opera Mini服务器地址的工具,直接生成修改后的Jar。


    使用

    运行需要Java虚拟机,可到Java官网下载。

    1. 一般安装后Java虚拟后,会自动关联了jar文件,直接双击即可运行。如果没关联,打开终端执行

    1. java -jar omsc.jar

    复制代码

    1. 选择jar文件和保存文件,测试一下代理地址,选择Jar版本,点击“修改”,搞定。
    2. 复制到手机前你也可以用MicroEmulator来测试一下。

    一些注意事项

    • 代理网页是一个网页地址,不是主机地址,所以要带上“http://”,不一定要是根目录,如“http://www.example.com/opm”。
    • 至于哪里获得代理网址,自己去找或搭建,测试功能只是简单的测试,电脑上能访问在手机上未必能访问。
    • 不要选错版本号,大家多点几次鼠标就省得多加一大坨代码来加入版本自动检测功能。
    • 推荐使用国际版,中国版加进了一些本地化网络支持可能有些不稳定问题。
    • 不同版本都测试一下,找出适合你手机的版本。

    问题解答
    Q:为什么修改后放到手机上出现“软件已损坏或文件无效”的错误。
    A:大概是把Jar和Jad都放在一起,手机上的Java虚拟机通常先读取Jad的信息来找相应的Jar,因为Jar修改后大小已经改变了,和原来的Jad信息不一致而被Java虚拟机直接判断为文件无效。解决方法是直接删掉Jad文件。
    Q:修改5.0的中国版在第一次运行时出现白屏无相应,只剩一个标题栏。
    A:OperaMini第一次运行需要联网来完成安装,大概就是中国版特别加入了一些初始化步骤,改服导致获取相关资源失败,所以卡在那里了。这个问题有待研究,目前的临时解决方法是先用原版来完成安装,把网络协议切换到http,退出,在用修改版来替换掉原版的jar。
    Q:初始化时还是出现使用中国版的提示。
    A:OperaMini 里内置两种网络协议,http和socket,代理网页只支持http,但OperaMini优先使用socket所以出现使用中国版的提示,在设置里切 换成http协议就行了。虽然把socket地址改掉能强制使用http,不改留着用来做网络检测,也就是发现http出错了,换成socket看看到底 是代理网页问题还是手机信号问题。
    Q:为什么我修改后测试不成功,出现这样那样的错误。
    A:国内手机网络环境复杂,不用手机不同Java虚拟机和不同地区可能有不同效果,无法保证完全没问题,所以请大家给多点耐心自己折腾一下,分享下你的修改经验。


    分割一下


    如何修改Android版的OPM


    先此处下载并安装JRE:http://www.java.com/getjava/ 。如果你已经安装了JRE或者JDK,请跳过此步。
    在此处下载反编译过的的Android版OPM源代码:
    将OPM的源代码解压到某个目录,如 D:\sources
    打开D:\classes\Code.smali,将 http://server4.operamini.com:80 改成你自己架设的OPM服务器,如 http://www.example.com/opera/index.php 。请注意:不要修改socket的设定,否则将无法使用。此处可将 socket://server4.operamini.com:1080 一并修改,这样在第一次运行的时候也不会提示下载中国版了。
    打开命令行,进入smali的保存目录,执行:
    1. java -jar smali.jar -o D:\classes.dex D:\source

    复制代码

    到此处下载Android版OPM的安装包: 。如果你知道怎么获取APK包也可直接使用原始的APK文件。
    将opm4.apk改名为opm4.zip,用任意压缩工具打开。删除里面的META-INF文件夹。并把D:\classes.dex拖进opm4.zip替换掉原始的classes.dex。
    在此处下载签名工具: ,并解压到任意目录。
    把修改过的opm4.zip放入Auto-Sign的目录,运行里面的sign.bat。
    如果你在Auto-Sign的目录里面看见your_app_signed.apk的话,恭喜你,你已经成功了!请在安装之前卸载先前的版本。
    进行软件后第一次仍会提示需要下载“中国版”,请先Accept后返回主界面,并在Settings中将Protocol改成HTTP后继续使用。

    1. java -jar smali.jar -o D:\classes.dex D:\source

    复制代码

    • 到此处下载Android版OPM的安装包:  。如果你知道怎么获取APK包也可直接使用原始的APK文件。
    • 将opm4.apk改名为opm4.zip,用任意压缩工具打开。删除里面的META-INF文件夹。并把D:\classes.dex拖进opm4.zip替换掉原始的classes.dex。
    • 在此处下载签名工具:  ,并解压到任意目录。
    • 把修改过的opm4.zip放入Auto-Sign的目录,运行里面的sign.bat。
    • 如果你在Auto-Sign的目录里面看见your_app_signed.apk的话,恭喜你,你已经成功了!请在安装之前卸载先前的版本。
    • 进行软件后第一次仍会提示需要下载“中国版”,请先Accept后返回主界面,并在Settings中将Protocol改成HTTP后继续使用。

    分割一下


    如何修改Java(J2ME)版的OPM

    修改步骤
    1. 先安装JDK或者JRE,安装地址如下: http://www.java.com/getjava
    2. 准备好适合你手机的Java版OPM,下载地址见此(需*和谐*): http://www.opera.com/mini/download/
    3. 在此处下载Java Class File Editor并解压某个文件夹: http://sourceforge.net/projects/classeditor/files/
    4. 运行Java Class File Editor,在命令行下进入解压目录后执行:java -jar ce.jar
    5. 将你的OPM程序(如opera-mini-4.2.14912-advanced-en-us.jar)用常见的压缩工具解压,然后你可以看到一堆的扩展名为.class的文件。
    6. 在ClassEditor中打开这堆.class文件里面最大的一个,以我下载的Generic版为例,打开a.class。
    7. 在ClassEditor中切换到Constant Pool选项卡,在Search的文本框里填入: http://server4.operamini.com:80/
    8. 点击Find/Find Next,直到左边的Value出现 http://server4.operamini.com:80/ 为止(一般为两次)。如果此处没有找到,请回到第六步,按文件大小顺序依次尝试其他的.class文件。
    9. 在ClassEditor的右上角把Modify Mode改为On,然后在Value文本框里填上自建的服务器地址,再点击Modify。
    10. 保存文件,退出ClassEditor。
    11. 用常见的压缩工具打开OPM程序,如不能直接打开可先将.jar的扩展名改成.zip。
    12. 把修改好的.class文件拖拽回文件内替换之前的版本,将.zip改回.jar。
    13. 大功告成!
    2009.11.26更新
    根据网友反应,Java Class File Editor这个软件修改可能有点问题。可以改用hhclass或者Halo等java汉化工具,修改原理同上,下载地址请自行搜索。 我自己并不用J2ME版的OPM,所以只在模拟器上尝试成功过。有网友碰到的授权问题我也不是很清楚。建议大家看看下面的留言,看看是否有所帮助。也欢迎 修改成功的网友来和大家交流修改的经验。 :)

    分割一下


    如何在黑莓的Opera Mini使用自定义服务器地址
    以下内容来自BBerCN:
    榨干OP4.2最后一滴血:可自定义代理服务器的Opera Mini俄版(已改键): http://www.bbercn.com/the-proxy- … ra-mini-russia.html
    拨开乌云-用Opera mini翻越”大山”不再困难: http://www.bbercn.com/opera-mini … nger-difficult.html
    使用步骤
    1. 请先下载可自定义代理服务器的Opera Mini俄版:
    2. 启动后修改其代理服务器,将地址改为自己搭建的OPM服务器地址
    3. 第一次登陆后一定要进入增强设置中将保存-初始去掉,不然不能在后台运行
    4. Enjoy!

    最简单设置代理网址的方法:
    找一个国外的PHP空间,根目录也可以,文件夹也可以,上传文件:
    Opera代理使用这个:
    UCweb代理使用这个:
    上传后重命名为index.php
    然后测试一下,浏览的时候自动跳转到Google英文首页就成功了

    然后是对Opera自定义代理网址:

    我自设两个代理网址,方便大伙可以测试下:
    http://thinkingpoor.com/opm/opera
    http://thinkingpoor.com/opm/ucweb

    OPERA-OPM高手知道怎么用的东东

    来源:煮机坛子 原文:自建代理服务器实现OperaMini/UCweb*和谐*(Palm Android和黑莓众也可以来看看)【震撼发布】OPERA-OPM高手知道怎么用的东东

    1. 匿名
      2010年11月29日10:41

      太多了,呵呵,没看完