Android 如何从底层解锁?AT指令的操作

简介: 看此篇文章之前大致先了解什么是AT指令,AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行操作,处理与语音电话、短信和数据。 其实安卓的拨打电话之类,底层执行的都是AT指令,包括基站。

看此篇文章之前大致先了解什么是AT指令,AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行操作,处理与语音电话、短信和数据。
其实安卓的拨打电话之类,底层执行的都是AT指令,包括基站。

hardware\ril\reference-ril\Reference-ril.conRequest() 处理RIL_REQUEST_DIAL 时会 调用requestDial();
requestDial()中转换RIL_REQUEST_DIAL 请求为AT指令;
通过at_send_command()下发;
经过at_send_command_full,at_send_command_full_nolock ,writeline()写到设备中。

想具体了解的同学可以看

frameworks\base\telephony\Java\Android\telephony\TelephonyManager.java
frameworks\base\telephony\java\com\android\internal\telephony\ITelephony.aidl
frameworks\base\telephony\java\com\android\internal\telephony\RILConstants.java
frameworks\opt\telephony\src\java\com\android\internal\telephony\Phone.java
frameworks\opt\telephony\src\java\com\android\internal\telephony\PhoneBase.java
frameworks\opt\telephony\src\java\com\android\internal\telephony\PhoneProxy.java
frameworks\opt\telephony\src\java\com\android\internal\telephony\RIL.java
packages\services\Telephony\src\com\android\phone\PhoneInterfaceManager.java
hardware\ril\include\telephony\ril.h和hardware\ril\reference-ril\ril.h
hardware\ril\libril\ril_commands.h
hardware\ril\libril\ril_unsol_commands.h
hardware\ril\reference-ril\reference-ril.c

请求可以看下面

在onRequest中添加处理RILJ发送过来的AT命令
在processSolicited中添加
如果是2G网络frameworks\opt\telephony\src\java\com\android\internal\telephony\gsm\GSMPhone.java
如果是3G网络,比如CDMA2000:
frameworks\opt\telephony\src\java\com\android\internal\telephony\cdma\CDMAPhone.java

调试的话可以按照下面来操作

调试的时候可以用logcat -b radio命令查看信息。

一些常见的LOG TAG是:

 RIL: /hardware/ril/reference-ril/refereince-ril.c
 AT: /hardware/ril/reference-ril/atchannel.c
 RILD: /hardware/ril/rild/rild.c
 RILC: /hardware/ril/libril/ril.cpp
 RILB frameworks/base/telephony/java/com/android/internal/telephony/BaseCommands.java
 RILJ: /frameworks/base/telephony/java/com/android/internal/telephony/gsm/RIL.java
 GSM: /frameworks/base/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java



现在大多数智能手机也可以作为一个调制解调器。几乎每个调制解调器都是Hayes兼容的,这意味着它支持Hayes在1977年开发的AT语言的命令。每个型号都支持一些由制造商定义的基本命令集。有时这个命令集可以扩展,并可以包含非常有趣的命令。


让我们研究LG智能手机的行为。当您通过USB将其连接到计算机时,您可以自动访问调制解调器(图1)。LG特有的是,即使手机的屏幕被锁定,调制解调器也可用。
KARL-dujinyang

因此,即使手机受密码保护,我们也可以使用AT命令了解有关手机的一些有用信息。(图2)。
KARL-dujinyang

要了解这个模式支持什么命令,我们必须检查其固件。例如,对于Android智能手机,我们只需要研究文件/ system / bin / atd。图片3-5演示了在LG G3 D855手机上找到的一些AT命令。
KARL-dujinyang
KARL-dujinyang


很明显,手机支持大多数基本的AT +命令集,可以用于提取关于它的公共信息(图5)。但最感兴趣的是LG专有命令(AT%类型的命令)。这些命令(如AT%IMEIx,AT%SIMID,AT%SIMIMSI,AT%MEID,AT%HWVER,AT%OSCER,AT%GWLANSSID)返回有关手机的基本信息。其中包括一个命令AT%KEYLOCK(图4)。你可能猜到这个命令允许你管理屏幕锁定状态。为了研究这个命令行为,我们可以运行一个调试器并使用交叉引用来找到它的处理函数代码。如图6所示。
这里写图片描述

当调用命令AT%KEYLOCK时,根据参数数量,会从/system/lib/libatd_common.so库中调用lge_set_keylock()或lge_get_keylock()函数。图7显示出了函数lge_set_keylock()的代码。
这里写图片描述


正如你从图片8中看到的,如果你传递给函数lge_set_keylock()的值为“0”= 0x30,它将最终调用该函数,这将移除屏幕锁,无论你是用什么方法来锁定它(你可以使用PIN,密码,模式或指纹来锁定屏幕)。然后它将返回字符串“[0] KEYLOCK OFF”(图8)。
这里写图片描述
很明显,命令AT%KEYLOCK = 0允许您删除屏幕锁定,而无需任何额外的操作。

值得一提的是,此命令只会删除屏幕锁定,而不会影响用户设置。

该命令的工作原理如下:它将零值(意味着解锁)写入特殊RAM区域,该区域存储着负责屏幕锁定的值。这意味着该命令不以任何方式修改ROM。此行为是可以用来取证的,因为不访问任何用户数据,并且重新启动智能手机后将返回锁定状态。该命令不允许调查员找到屏幕锁定PIN /模式/密码; 它只是删除它一段时间。

为了进行此分析,我们使用了LG G3 D855型号(带有V20g-SEA-XX固件)。然而,上述AT命令已经被证明在其他LG智能手机(LG G4 H812,LG G5 H860,LG V10 H960等)上也可以正常工作。所有这些模型支持这种方法。

因此,它是很容易解锁手机的。所有你需要只是拥有一个LG Android智能手机,然后通过USB连接到一台电脑。这个后门显然是LG的服务软件,但也可以用于取证目的。但要记住,罪犯也可以使用这种方法。

相关文章
|
7月前
|
Android开发
Android kernel 操作gpio
Android kernel 操作gpio
86 0
|
8月前
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
391 0
|
8月前
|
XML API 开发工具
Android Bitmap 加载与像素操作
Android Bitmap 加载与像素操作
70 2
|
9月前
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
261 5
|
9月前
|
Java Android开发
Android系统 获取用户最后操作时间回调实现和原理分析
Android系统 获取用户最后操作时间回调实现和原理分析
254 0
|
9月前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
177 0
|
9月前
|
XML Java API
Android 浅度解析:系统框架层修改,编译,推送相关操作
Android 浅度解析:系统框架层修改,编译,推送相关操作
333 0
|
9月前
|
Android开发
[Android]视图的控触操作-MotionEvent
[Android]视图的控触操作-MotionEvent
80 0
|
9月前
|
算法 Java 数据安全/隐私保护
Android App开发之利用JNI实现加密和解密操作实战(附源码 简单易懂)
Android App开发之利用JNI实现加密和解密操作实战(附源码 简单易懂)
420 0
|
数据库 Android开发 数据库管理
Android 使用Room操作数据库进行数据库版本的升级和迁移
Android 使用Room操作数据库进行数据库版本的升级和迁移
631 0

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    Android历史版本与APK文件结构
  • 3
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 1
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    24
  • 2
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    32
  • 3
    Android历史版本与APK文件结构
    120
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    27
  • 5
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    56
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 8
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    73
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    118
  • 10
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
    29