写这个工具的目的是为了更方便地下载泛泰最新的binx包和ota升级包。
获取ota升级包的功能其实就是SKY_Station所实现的在线升级功能。
写得比较匆忙,有可能会有bug,待把代码整理后,有时间再集成到PantechTools工具集里。
使用C#编写,运行环境需要.net framework2.0。
因为界面上没多少文字,就不做中文版了……免得在其它语系中产生bug。
使用说明
1、如何获取最新的binx下载地址。
1-1、按下”Get All Phone Model”按钮,如果网络正常,就可以获取到所有泛泰手机型号,并解析为如下表格。
1-2、获取到所有手机型号后,就可以在”Phone Model”下拉框中选择某个型号,选中后,在”LastestBinx Download Address”里显示的就是最新的binx下载地址了
1-3、Export2CSV功能可以把型号列表信息导出成CSV文件保存,等今后某一天更新后对比一下哪些型号又有新版系统了
2、如何检查某个系统版本是否有OTA升级包
2-1、如果你知道确切的手机型号和系统版本号,可以直接在”Phone Model”中填入你的手机型号,在”Version”中填入需要升级的系统版本号(注意:不是官方最新的系统版本号,而是旧的系统版本号),本文以A850K,212系统为例。
2-2、然后点击”Check Update”来检查是否有升级包存在,如果存在则如下图所示,可以显示出最新的系统升级包版本。
2-3、如果填入的Vsersion不正确,则检测结果显示为空白。
2-4、此步骤也可以使用Export2CSV功能导出检测结果。
3、如何下载OTA升级包
3-0、(2013.5.31更新)可以直接用下载工具来下载了,地址就在OTA Download Address这栏里了。
3-1、或者,你可以直接用本工具自带的功能来下载,只有当”Check Update”能找到升级包时,才能按下”Download Update”按钮来下载升级包。
3-2、按下”Download Update”后,会弹出保存位置窗口,请找一个空间足够大的地方来放置升级包,保存的文件类型为.apk。
3-3、下载过程中,右下角会显示%进度,以及实时收到的数据包长度(避免网速慢时误以为程序宕机)。
3-4、下载完成后会有完成提示。
4、如何取得官方卡刷包。
4-1、用压缩软件打开下载好的apk文件(实际上apk就是zip压缩包),然后解压
4-2、找到assets文件夹下的update.zip,这个就是官方的卡刷包了
三、原理
3-1、获取binx下载地址的方法:
从这个地址可以下载到一个inf文件,包含泛泰所有手机型号机及最新的系统版本。
http://dmfile.curitel.com/self_binary/sky_binary/real/download.inf
将其解析,并按如下规律填入下面的公式就可以得到下载地址
http://dmfile.curitel.com/self_binary/sky_binary/real/{手机型号}/{文件名}
手机型号就是在[]内的Phone Model信息
文件名就是FileName段的信息
3-2、获取ota升级包的方法
Suky的博客里有了,这里就不再重复了:
http://blog.csdn.net/su_ky/article/details/7728877
又可以偷懒一下了。
既然suky已经说得很明白了,那么我这里就用工具来分析和演练一下检测更新的过程吧:
关闭所有网页,只打开一个空白页面,祭出神器Fiddler
然后空白页打开http://apkmanager.skyservice.co.kr,仍然显示空白。
此时在Fiddler就会出现一个新的条目,然后选中这个条目,右键打钩”Unlock For Editing”使此条目可编辑。
在右上角的Raw填入(这里以A850K,212系统为例) ,如下图所示
POST http://apkmanager.skyservice.co.kr/apkmanager/Process/sky_station_30_server.php HTTP/1.1
Host: apkmanager.skyservice.co.kr
Accept-Encoding: identity
Content-Length: 336
Connection: Keep-Alive
Content-Type: multipart/form-data;boundary=pkgname
--pkgname
Content-Disposition:form-data;name="file";filename=GET_PKG_DETAIL_INFO.xml
<?xml version="1.0" encoding="UTF-8"?><SKY_REQUEST><SKY_CMD>GET_PKG_DETAIL_INFO</SKY_CMD><TERMINAL_NAME>IM-A850K</TERMINAL_NAME><BOARD_SOFT_VER>S0837212</BOARD_SOFT_VER><PKG_NAME>com.pantech.firmware.bin.IM-A850K</PKG_NAME></SKY_REQUEST>
--pkgname--
然后右键这个条目并选择”Replay”->”Reissue Request”,会把这条修改过的http请求发送出去
如果正常的话,就会生产一个新的条目,右下脚的raw窗口可以看到返回值:
HTTP/1.1 200 OK
Date: Sun, 26 May 2013 14:31:13 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.3.3
Content-Length: 699
Connection: close
Content-Type: text/html;charset=utf-8;
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><SKY_RESPONSE><SKY_CMD>GET_PKG_DETAIL_INFO</SKY_CMD><APK_INFO><PKG_NAME>com.pantech.firmware.bin.IM-A850K</PKG_NAME><APP_NAME>IM-A850K</APP_NAME><PKG_VERSIONCODE>2.16</PKG_VERSIONCODE><PKG_VERSIONNAME>S0837216</PKG_VERSIONNAME><GET_INFO_URL>2013/79c54c0e08.apk</GET_INFO_URL><PKG_SIZE>716851234</PKG_SIZE><PKG_DATE>2013-05-14 13:45:58</PKG_DATE><PKG_DESCRIPTION>S0837216EF49Ktp25user20130514120309PRELOADCS11552pdl
계정 없을 경우 재부팅 시 전화부 그룹 사라지는 현상</PKG_DESCRIPTION><DATA_INIT>0</DATA_INIT><UNZIP_SIZE>716853017</UNZIP_SIZE><CHECKSUM>5db678927c09091ef99b2c4b5b81cdc3</CHECKSUM></APK_INFO></SKY_RESPONSE>
如果想要用stream的方式来下载,自己做的工具无法实现断点续传,下载过程无法用Fiddler来分析。
还想更进一步分析的话,可以打开下载工具后,使用神器IPOP V4.1的"报文捕获"功能来分析下载过程
- PC官方版
- 安卓官方手机版
- IOS官方手机版