看板 Linux 關於我們 聯絡資訊
小弟目前正在做的事情 是先對Android模擬器安裝一個舊版的apk(這邊給他一個名字叫A15.apk好了) 然後我會去另一個web site抓下最新版的apk(叫他A20.apk) 用adb install -r的方式對這個apk做upgrade 由於另一個web site也是小弟這邊可以存取的 所以我試過,直接從web site上抓到的A20.apk,可以成功的在模擬器上upgrade 問題在於說,我要用script讓他去自動做這個動作 script裡面是這樣寫的 curl -k -v -X GET -u "USER:PWD" ${APKURL} -o ${APKPATH} 抓下來的apk(做個區分叫他A20NG.apk),就是會upgrade失敗 會報INSTALL_FAILED_UPDATE_INCOMPATIBLE的錯誤 我比對了A20.apk/A20NG.apk的checksum, checksum都不一樣了 感覺curl之後檔案被改掉了 但A20NG.apk如果單獨install是可以裝上去的,獨獨就是不能做upgrade 我把curl的-k, -v, -X GET參數都拔掉試過,也不行 小弟對linux command不慎專精, google過這部分, 沒有找到答案 有沒有大大知道,curl下來的檔案,是不是有什麼部分會被變動到? 又要怎麼樣讓他不會被變動呢 -- 月光皎潔,卻照不亮我的夜空 星光燦爛,卻映不出妳的面容 日光耀眼,卻不見妳的芳心飄落何方 燭光搖曳,卻投影不了濕滿胸襟的,我的淚痕。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.3.181 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1476689734.A.5E8.html
chang0206: curl file.apk|sha1sum 啥參數都不加算checksum也會 10/17 16:55
chang0206: 有問題?那如果改用wget呢? 10/17 16:55
wget因為一些certification的問題目前抓不到O_Q 是說要用也可以但是可能要花比較長的時間研究,因為那個環境當初不是我架的
Vdragon: agent 不對回傳錯誤的結果很正常喔,您可以用 file 命令 10/17 18:26
Vdragon: 檢查檔案的格式是否不同 10/17 18:26
我可以再用file檢查一下 不過agent不對是甚麼意思小弟不是很明白 大大可以解釋一下嗎?
ckc1ark: 是動態產生apk的嗎 會不會每次的checksum都不一樣 10/17 21:44
ckc1ark: 也可以unzip一下看到底是哪邊不一樣 10/17 21:44
不算是動態產生的,就是build出來放在某個地方放好去抓 同一個方法去抓兩次下來,checksum會一樣 unzip去檢查我就沒有試過了@@ 明天試試看好了 ※ 編輯: tennouji (1.161.183.64), 10/18/2016 00:00:12
chang0206: 或者在SOURCE那邊先壓縮,抓回來再解呢? 10/18 09:32
的確可以試試看這樣做,我再研究看看
Vdragon: 這邊的 agent 是瀏覽器的意思,curl 也算是一種瀏覽器 10/18 09:38
我剛剛用file試過了 兩個A20都回傳Zip archive data, at least v2.0 to extract 看起來是一樣的 ※ 編輯: tennouji (60.251.3.181), 10/18/2016 10:12:13 感謝各位大大的回答 也很抱歉浪費了大家的時間 小弟這邊再次debug程式的流程 發現curl抓到的檔案是對的 是被另外一條東西弄出問題的 現在往移除另外一個部分的方向進行中 再次謝謝大大們的協助 ※ 編輯: tennouji (60.251.3.181), 10/18/2016 10:56:24
antontw: agent 是 http client 送出的 user-agent 欄位 10/19 10:18
antontw: web server 通常是用這欄來抓 http client 是哪一個 10/19 10:18