寫這個工具的目的是為了更方便地下載泛泰最新的binx包和ota升級包。
獲取ota升級包的功能其實就是SKY_Station所實現(xiàn)的在線升級功能。
寫得比較匆忙,有可能會有bug,待把代碼整理后,有時間再集成到PantechTools工具集里。
使用C#編寫,運行環(huán)境需要.net framework2.0。
因為界面上沒多少文字,就不做中文版了……免得在其它語系中產(chǎn)生bug。
使用說明
1、如何獲取最新的binx下載地址。
1-1、按下”Get All Phone Model”按鈕,如果網(wǎng)絡(luò)正常,就可以獲取到所有泛泰手機型號,并解析為如下表格。
1-2、獲取到所有手機型號后,就可以在”Phone Model”下拉框中選擇某個型號,選中后,在”LastestBinx Download Address”里顯示的就是最新的binx下載地址了
1-3、Export2CSV功能可以把型號列表信息導(dǎo)出成CSV文件保存,等今后某一天更新后對比一下哪些型號又有新版系統(tǒng)了
2、如何檢查某個系統(tǒng)版本是否有OTA升級包
2-1、如果你知道確切的手機型號和系統(tǒng)版本號,可以直接在”Phone Model”中填入你的手機型號,在”Version”中填入需要升級的系統(tǒng)版本號(注意:不是官方最新的系統(tǒng)版本號,而是舊的系統(tǒng)版本號),本文以A850K,212系統(tǒng)為例。
2-2、然后點擊”Check Update”來檢查是否有升級包存在,如果存在則如下圖所示,可以顯示出最新的系統(tǒng)升級包版本。
2-3、如果填入的Vsersion不正確,則檢測結(jié)果顯示為空白。
2-4、此步驟也可以使用Export2CSV功能導(dǎo)出檢測結(jié)果。
3、如何下載OTA升級包
3-0、(2013.5.31更新)可以直接用下載工具來下載了,地址就在OTA Download Address這欄里了。
3-1、或者,你可以直接用本工具自帶的功能來下載,只有當”Check Update”能找到升級包時,才能按下”Download Update”按鈕來下載升級包。
3-2、按下”Download Update”后,會彈出保存位置窗口,請找一個空間足夠大的地方來放置升級包,保存的文件類型為.apk。
3-3、下載過程中,右下角會顯示%進度,以及實時收到的數(shù)據(jù)包長度(避免網(wǎng)速慢時誤以為程序宕機)。
3-4、下載完成后會有完成提示。
4、如何取得官方卡刷包。
4-1、用壓縮軟件打開下載好的apk文件(實際上apk就是zip壓縮包),然后解壓
4-2、找到assets文件夾下的update.zip,這個就是官方的卡刷包了
三、原理
3-1、獲取binx下載地址的方法:
從這個地址可以下載到一個inf文件,包含泛泰所有手機型號機及最新的系統(tǒng)版本。
http://dmfile.curitel.com/self_binary/sky_binary/real/download.inf
將其解析,并按如下規(guī)律填入下面的公式就可以得到下載地址
http://dmfile.curitel.com/self_binary/sky_binary/real/{手機型號}/{文件名}
手機型號就是在[]內(nèi)的Phone Model信息
文件名就是FileName段的信息
3-2、獲取ota升級包的方法
Suky的博客里有了,這里就不再重復(fù)了:
http://blog.csdn.net/su_ky/article/details/7728877
又可以偷懶一下了。
既然suky已經(jīng)說得很明白了,那么我這里就用工具來分析和演練一下檢測更新的過程吧:
關(guān)閉所有網(wǎng)頁,只打開一個空白頁面,祭出神器Fiddler
然后空白頁打開http://apkmanager.skyservice.co.kr,仍然顯示空白。
此時在Fiddler就會出現(xiàn)一個新的條目,然后選中這個條目,右鍵打鉤”Unlock For Editing”使此條目可編輯。
在右上角的Raw填入(這里以A850K,212系統(tǒng)為例) ,如下圖所示
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請求發(fā)送出去
如果正常的話,就會生產(chǎn)一個新的條目,右下腳的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的方式來下載,自己做的工具無法實現(xiàn)斷點續(xù)傳,下載過程無法用Fiddler來分析。
還想更進一步分析的話,可以打開下載工具后,使用神器IPOP V4.1的"報文捕獲"功能來分析下載過程
- PC官方版
- 安卓官方手機版
- IOS官方手機版