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转制原理分析--一回事》
本文来源:不详 作者:佚名