Android 网页获取短信验证码 可行性预研

目标: Android 网页获取短信验证码

目前状态: 预言阶段(技术上未实现

网页端方案: Android WebKit插件开发 SMS-BrowserPlugin

  • 方案描述: WebKit插件包括PluginServicePlugin.so动态库, Plugin.so提供与WebKit的交互,提供JS的接口;PluginService静态注册WebKit插件action,实现短信拦截功能。

Android端拦截短信方案

  • 方案一: 监听SMS广播
  • 方案二: NotificationListenserServic监听Notifications,过滤短信应用包名的通知信息

过程记录:

  1. 研究Android WebKit插件原理及实现方式
  2. 创建示例Plugin项目
  3. 动态库需要Android中相关插件部分接口头文件,寻找头文件,下载后放入项目中。又需要依赖其他lib和头文件,依赖过重,依赖文件无从查起,放弃此方案,该用Android源码下编译方式
  4. Android源码下编译方式
    1. 安装虚拟机Ubuntu环境,安装SSH-Server,Samba
    2. 安装JDK1.6及Android编译所需要的依赖库(JDK版本和依赖环境需要与要编译的Android版本相关)
    3. 安装repo
    4. 下载android-4.0_r1源码(翻墙下载速度过慢,使用中科大镜像。下载中由于网速不稳定问题,容易卡住,卡住后没有任何反应,需要停止再重新下载)
    5. 下载后仓库和工作区源码容量近80G,编译存储空间溢出,删除掉仓库.repo,进剩下源码部分
    6. 编译源码
    7. 编译SampleBrowserPlugin,生成SampleBrowserPlugin.apkSampleBrowserPlugin.odex
    8. 合并.apk.odex (SampleBrowserPlugin.apk无法直接安装,合并.apk和.odex,再打包重新签名。但安装还是报错)
  5. 使用源码编译的动态库
    1. 解压缩.apk,得到动态库armeabi-v7a/libsampleplugin.so 文件
    2. 将libsampleplugin.so加入到示例Plugin项目中
    3. 编译项目生成APK,安装应用并启动
    4. 编写HTML文件,包含插件相关参数的对象
    5. 推入设备的SDCard中,使用浏览器打开(结果还是插件无法加载)
  6. 编译项目生成APK,安装应用并启动
  7. 脚本使用插件对象
    1. 编写HTML文件,包含插件相关参数的对象
    2. 推入设备的SDCard中,使用浏览器打开(结果还是插件无法加载)

目前遇到的问题:

  • 插件无法被浏览器正常的加载

后续方向:

  • 分析Web API是否有对应的接口

    不可行,

  • 分析WebExtension是否可行

    不可行,WebExtension由HTML、CSS、JS构成,不能访问Android原生接口

  • 借助服务器中转


参考文档:

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :