小爱同学触屏音响Security Breach,成功越狱安装第三方App——6

此系列文章为本人原创,首发于本人博客,本身并不是一篇教程文章,主要是对破解过程的一些分享,希望能给各位读者一些启发。找漏洞不易,了解方法后自己偷偷玩就行,谢绝转载,且行且珍惜!

免责声明:破解具有一定风险,文章谈到的所有方法仅供学习交流之用,由于破解导致的问题与本人无关,请知晓风险后再进行操作。

六、柳暗花明

上回说到,我们在设置中发现了一个很有意思的选项——快应用服务框架,那么这个快应用又是个什么呢?依照快应用官方的说法:快应用是移动互联网新型应用生态,与手机系统深度整合,为用户提供更加场景化的体验。具备传统APP完整的应用体验,但无需安装、即点即用。

简单来说,快应用就是一种类似微信小程序的应用,而我为什么会其他应用都不看,偏偏看上它了呢?主要是因为其描述引起了我的兴趣,并且这个选项中还有一个打开链接的设定,看来是deeplink没错了,关于deeplink,这是我们在安卓平台中经常能用到的一种技术,具体可以参考:https://baike.baidu.com/item/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E6%B7%B1%E5%BA%A6%E9%93%BE%E6%8E%A5/19902538?fr=aladdin

单纯的deeplink来说,对我们没有太大的帮助,因为毕竟要安装了对应的App,deeplink才能帮我们拉起来对应的App,如果我们系统都没有安装,那么浏览器要么不响应,要么就是引导你走向下载页,这两样在之前的尝试中已经确定被封死了,但是巧的也正是在这里,deeplink和这个所谓的快应用服务框架在一起正好产生了奇妙的化学反应。你可能以为我想通过deeplink把这个快应用服务框架给拉起来,然而不是这样的,框架这种东西一般是不能单独运行的,或者说是不能运行的。框架其实是为其他应用运行提供一个运行环境,应用是依附在框架上运行的,主次还是要分清楚的。那么怎么利用这个快应用服务框架为我们服务呢?

首先我们打开小米快应用的开放平台:https://dev.mi.com/console/app/newapp.html

点击下方的开发者论坛,看看快应用究竟是怎么进入的吧,我们通过查找,发现置顶的帖子就有说明:https://bbs.quickapp.cn/forum.php?mod=viewthread&tid=1577,其他的都不重要,我们主要关心的还是:

3、 语音-小爱同学
· 长按Home键唤起小爱同学-发出指令-秒开
6、url跳转
· 浏览器搜索应用后页面跳转,例如搜索唯品会,点击唯品会官网后跳转唯品会快应用
7、url微信
· 分享链接,跳转快应用,例如:汽车之家;
· 朋友圈或公众号内url跳转

第三点仅可在手机版的小爱同学上测试成功

第六、第七点,都说到这份上了,我们就找个链接测试下呗?正好我手头正好有部小米手机,能对照着测试下,如果手机能正常跳转,小爱触屏音响不行的话,那大概率是音响本身的问题。然而我拿手机试了好几个网站,好像都不怎么好使。主要还是不确定有没有兼容性问题,测下来好像跟浏览器有很大关系。

在这种情况下,考虑这些平台的开发参差不齐,内部完全可能做了多种适配,微信小程序,快应用,原生App都应该做到一起了,还有浏览器本身的差异都有可能导致跳转出现问题,我们最好是抛弃其他因素带来的影响,找到一个直链进行尝试,如果能找到直链测试,这些问题应该都不复存在了。

但是令人遗憾的是,我查看了这么多平台,竟然都没有看见能有一个地方发直链出来的。于是我找来了快应用的开发文档,迅速定位到如下两节:

https://doc.quickapp.cn/tutorial/platform/deeplink.html

https://doc.quickapp.cn/tutorial/platform/url-jump-configuration.html

可惜看了半天,说了这么多,怎么不能举一个实际能用的例子呢,给个例子,我试试能不能跳转过去,能跳转成功就说明我的配置没问题。于是我又搜索到了小米的快应用介绍:https://cdn.cnbj1.fds.api.mi-img.com/quickappcenter1/%E5%B0%8F%E7%B1%B3%E5%BF%AB%E5%BA%94%E7%94%A8%E4%BB%8B%E7%BB%8D.pdf

这里面正好有几个链接,都是图片,无奈全手打链接,把里面的都试了下,反正没一个能成功的,各位读者也可以试试能不能成功,从链接格式上看貌似也跟上面开发文档说的对不上。怎么找一个链接这么难呢?经过我的测试,只有在使用小米自带浏览器,打开唯品会官网的时候能正常打开快应用。若自己想运行快应用玩玩,在负一屏打开是最有效的手段,卸载操作和应用商店搜索都是会有一定触发概率才能触发快应用的。真是平常不要它的时候经常跳出来,现在需要它的时候它又不跳出来了。

没办法,只好拿出我最简单粗暴的手段,百度搜索链接前缀 http://hapjs.org/app/,并没有找到什么,继续用Google,还真给我找到了一个,如下图第一个链接:

手机测试,好用,看来链接没有问题,于是马上转到小爱触屏音响上。咦,竟然提示您的手机不支持快应用,这是哪里出问题了吗?

突然我想到一个问题,根据之前的印象,在快应用服务框架的应用信息界面的时候,好像看到了有个支持链接的选项,也许是不支持当前的这种形式?再返回去看一下,看来是我记错了,应该是支持这种链接格式的。

但是考虑到hapjs.org是http/https格式的前缀,webview在这方面可能会有解析问题,还是直接用hap://格式的链接来得更彻底,支持就会有提示,不支持就会转到error scheme界面,于是着手进行hap://格式链接的寻找,但是经过我多方搜索,均没有找到一个hap://格式的链接,也许是搜索引擎的爬虫不收录吧,我又依次寻找了上述的hybrid.miui.com和hybrid.xiaomi.com形式的链接,也均无收获。

没办法,那就进行手动转换吧,官方支持的链接形式就这三种:

  • http://hapjs.org/app/<package>/[path][?key=value]
  • https://hapjs.org/app/<package>/[path][?key=value]
  • hap://app/<package>/[path][?key=value]

至于小米这边,肯定也有它支持的私有格式,这个就更难找了,这里先不考虑,目前主要考虑的还是官方的第三种,查看继续查看参数解析:

于是把之前发现的链接:

http://hapjs.org/app/com.dangdang.quickapp/packageA/pinhongbao

经过转换得到了:

hap://app/com.dangdang.quickapp/packageA/pinhongbao

继续打开w3cschool,构建简单的一条链接:

奇怪的事情发生了,点击一点反应都没有,根据上面我的判断,会出现的情况只会有两种:

1.支持,支持则会直接跳转到对应快应用

2.不支持,会直接报错同时显示scheme error

这里竟然出现了第三种情况,妥妥的被打脸,这只能说明一个问题,那就是爱奇艺的这个webview被人做了手脚,同样对快应用的开启做了拦截处理。

那么又如何突破这个限制呢,且听我下回分解。

未完待续

留下评论