Android应用市场付费APK防盗版研究

由于商城需要增加防盗版的功能,于是对其他应用市场进行了调研。看了下应用宝、小米市场、华为市场、百度等市场,发现只有华为市场和小米VR市场有提供付费下载功能,所以主要对这两个App进行了调研。

华为市场

华为市场开发者文档

原理

       华为市场的防盗版功能,需要接入SDK,生成的App可以独立运行。

       华为市场的校验是需要配合华为市场或者游戏中心的App来进行的,校验时会先调用华为市场的服务,然后请求服务器来判断当前登录的账号是否已经购买了App。

       所以说,假如用户没有安装华为市场或者游戏中心,或者用户没有登录账户,或者登录的账户没有购买过App,都是无法启动该App。

官方提供的原理图

小结

       华为的方案或者说通过SDK来校验的方案,有一个不好的就是,假如App没有进行加固,被用户反编译并重新打包后,很容易就可以绕过SDK的校验。但现在加固的方案相对也比较完善了,应该也不太容易破解。

小米VR

小米VR开发者文档

原理

       小米VR市场需要接入Unity插件,生成的App安装后不会在桌面显示图标,需要通过小米VR来打开App。

       如何防盗版?

       小米的校验本质和华为的类似,小米是通过Unity的插件,在生成apk的时候,可以选择是否在启动的时候进行校验,也可以自行调用SDK的方法进行校验。

       小米官网并没有给出具体的原理图,但是推测应该是通过小米VR市场的服务来进行校验登录用户是否有权限。

          

       如何隐藏桌面图标。

       小米有一个接入的规范,其中有一条是Manifest中不能包含以下信息。这个intent-filter是用来在桌面上显示图标的,所以小米VR下载的App都不会在桌面显示图标。

<intent-filter>

    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

小结

       小米VR的方案其实和华为类似,都是通过让第三方来接入SDK实现的。

       在小米VR上购买了两个应用,一个收费的,一个免费的,反编译后,在Manifest中增加了入口的配置,然后重新打包安装,发现都是可以独立安装运行的,但是需要安装小米VR的应用,要不然无法运行。似乎破解也比较容易,但也有可能是这两个App都没有增加防盗版的校验。但是给应用加固后,盗版应该也比较困难。

总结

       两个市场的防盗版原理都是通过接入SDK,然后通过SDK来进行校验。小米VR做了一个App启动的Launcher,对安装的App进行了统一的管理。也是进一步增加了安全性。

       如果我们来做的话,可以参考华为的方案,实现相对来说比较简单,安全性也基本足够了,用户在我们市场上传App的时候,可以建议用户加固下,增强安全性。

       如果做的话,有可能需要跟passport那边对接下,假如用户没有登录爱奇艺的商城的话,需要用户进行登录,需要他们那边提供下接口。

其他

       华为和小米商城都对用户上传的包名进行了限制,华为的包名必须以.huawei结尾,这样是为了防止用户在爱奇艺买了一个App,然后又通过比如应用宝对App进行了更新,应用宝的App铁定是没有我们的鉴权信息的,导致App无法正常启动。

猜你喜欢

转载自blog.csdn.net/cpcpcp123/article/details/121655003