IT之家此前詳細報道了Win10 Mobile系統安裝安卓APK應用的消息,利用微軟PRoject Astoria內測項目泄露工具可以實現。另外還有開發者將APK應用轉換成Appx應用,但本質原理是一樣的。下面是IT圈網友BlackD為大家帶來的詳細剖析。
推薦閱讀:《Win10 Mobile安裝安卓APK應用快捷安裝工具下載》
首先直裝apk的工具可以認為是微軟安卓兼容計劃Project Astoria的內測工具的一部分,其原理是在第一次用wconnect鏈接手機配對成功后,將工具debugger目錄下的agent包傳入手機,由手機內的Astoria platform執行,分為2個部分:
1.建立一個adb的server端,接受來自adb的連接請求和安裝包。
2.將安裝包以project astoria要求的方式部署在AoW子系統中
那appx又是怎么回事呢?
首先我們可以肯定在兼容安卓這個事情上,微軟已經部署了AoW作為子系統,所以最終運行的還是安卓的代碼(基于sdk的java或者機遇NDK的c)的運行時,而非真正的wp10的appx。所以這個轉制appx只是給apk封裝了一層皮。
首先我們把轉制成appx后的京東app解包看下:
很明顯有一個wpxap.apk,這個包尺寸和京東app的apk是一樣的,也就是原封不動的把京東的apk打包在了appx的外殼內。
然后看用紅框標注的4個文件,這4個文件是在手機AoW中部署apk的指導模板。那這四個文件哪里來的呢?
我們繼續解包直裝apk大法中,agent.zip,在agent.zip解開后,是一堆調試運行在手機中建立調試環境和adb連接的庫,甚至包括解壓縮的一些庫。其中有一個templates目錄,就是安裝模板。
可以在templates目錄下的phone/arm下找到如下文件:
對了,這4個文件就是appx轉制大法的核心,利用這個安裝模板在機器內部解壓部署apk。
appx里剩下的藍色框的文件其實是appx都有的一些常規圖標,簽名,配置文件,可以參考下IT之家WP版的appx結構。
那么原理就很清楚了:
1. appx大法是把微軟泄露的安裝apk模板作為appx的主體執行程序,把apk作為資源。利用appx的部署格式將apk復制進系統,然后執行安裝模板部署apk,這也是為什么appx大法也需要打開開發者模式的原因,因為這就是微軟內測項目的安裝模板。
2. apk大法就是直接利用微軟泄露工具,在電腦和win10手機之間建立了一條adb的隧道,通過很安卓化的adb命令將apk傳入手機,然后利用安裝模板安裝。
本篇文章原出自IT圈——《直裝apk和appx轉制原理分析--一回事》
新聞熱點
疑難解答