AOKP接听震动PHONE.APK修改方法
2019独角兽企业重金招聘Python工程师标准>>>
1.准备工作,前提电脑需配置JAVA环境,需要apktool 、notepad++ ,解压。 工具下载见附件。
2、提取ROM的system\app的PHONE.apk 及 框架文件system\framework下 的framework-res.apk ,把这两个文件放到apktool目录下.
3.运行CMD.bat ,cmd下输入命令 apktool if framework-res.apk ,加载系统框架 ,然后反编PHONE.apk , CMD命令apktool d phone.apk abc
4、进入abc\smali\com\android\phone 找到 CallNotifier.smali 用notepad++ 打开CallNotifier.smali 最后另起一行添加以下代码:
.method private callVibrate(Z)V.locals 11const/4 v10, 0x0const/4 v9, 0x1:try_start_0iget-object v7, p0, Lcom/android/phone/CallNotifier;->mApplication:Lcom/android/phone/PhoneApp;iget-object v7, v7, Lcom/android/phone/PhoneApp;->phone:Lcom/android/internal/telephony/Phone;invoke-interface {v7}, Lcom/android/internal/telephony/Phone;->getForegroundCall()Lcom/android/internal/telephony/Call;move-result-object v0invoke-virtual {v0}, Lcom/android/internal/telephony/Call;->getLatestConnection()Lcom/android/internal/telephony/Connection;move-result-object v1iget-object v7, p0, Lcom/android/phone/CallNotifier;->mApplication:Lcom/android/phone/PhoneApp;invoke-virtual {v7}, Lcom/android/phone/PhoneApp;->getContentResolver()Landroid/content/ContentResolver;move-result-object v4const/4 v6, 0x0invoke-virtual {v1}, Lcom/android/internal/telephony/Connection;->getDurationMillis()Jmove-result-wide v2if-eqz p1, :cond_2const-wide/16 v7, 0x0cmp-long v7, v2, v7if-lez v7, :cond_1const-string v7, "hungup_vibrator"const/4 v8, 0x1invoke-static {v4, v7, v8}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Imove-result v7if-ne v7, v9, :cond_1move v6, v9:goto_0if-eqz v6, :cond_0iget-object v7, p0, Lcom/android/phone/CallNotifier;->mApplication:Lcom/android/phone/PhoneApp;const-string v8, "vibrator"invoke-virtual {v7, v8}, Lcom/android/phone/PhoneApp;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;move-result-object v5check-cast v5, Landroid/os/Vibrator;const-wide/16 v7, 0x64invoke-virtual {v5, v7, v8}, Landroid/os/Vibrator;->vibrate(J)V:cond_0:goto_1return-void:cond_1move v6, v10goto :goto_0:cond_2invoke-virtual {v1}, Lcom/android/internal/telephony/Connection;->isIncoming()Zmove-result v7if-nez v7, :cond_3const-wide/16 v7, 0xc8cmp-long v7, v2, v7if-gez v7, :cond_3invoke-virtual {v0}, Lcom/android/internal/telephony/Call;->getState()Lcom/android/internal/telephony/Call$State;move-result-object v7sget-object v8, Lcom/android/internal/telephony/Call$State;->ACTIVE:Lcom/android/internal/telephony/Call$State;if-ne v7, v8, :cond_3const-string v7, "outgoing_vibrator"const/4 v8, 0x1invoke-static {v4, v7, v8}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I:try_end_0.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0move-result v7if-ne v7, v9, :cond_3move v6, v9goto :goto_0:cond_3move v6, v10goto :goto_0:catch_0move-exception v7goto :goto_1
.end method.method private callVibrateHungup()V.locals 1const/4 v0, 0x1invoke-direct {p0, v0}, Lcom/android/phone/CallNotifier;->callVibrate(Z)Vreturn-void
.end method.method private callVibrateOutgoing()V.locals 1const/4 v0, 0x0invoke-direct {p0, v0}, Lcom/android/phone/CallNotifier;->callVibrate(Z)Vreturn-void
.end method
5、用ctrl+F查找 .method private onDisconnect(Landroid/os/AsyncResult;)V 空一行加入下边代码
invoke-direct/range {p0 .. p0}, Lcom/android/phone/CallNotifier;->callVibrateHungup()V
继续ctrl+F查找.method private onPhoneStateChanged(Landroid/os/AsyncResult;)V 空一行加入以下代码
invoke-direct {p0}, Lcom/android/phone/CallNotifier;->callVibrateOutgoing()V
6、保存,回编译,CMD下命令 : apktool b abc 成功后找到abc\build\apk\classes.dex 用压缩软件RAR打开PHONE.apk ,把反编的classes.dex托进去替换旧的classes.dex ,然后用RE替换新的PHONE.apk 就可以了,注意改权限 ,第一排竖的三个勾上,竖的第二排的第一个勾上。重启,大功告成!
转载于:https://my.oschina.net/u/551428/blog/55646
AOKP接听震动PHONE.APK修改方法相关推荐
- AppNinja一文解决:targetSdkVersion版本过低安装失败,安装apk提示版本太低,targetsdkversion修改方法,附带打包修改工具
解决targetSdkVersion版本过低安装失败,安装apk提示版本太低,targetsdkversion修改方法 直接上解决办法: 一.打包错误 AndroidManifest.xml:1: e ...
- 反编译apk修改v7包_APK反编译
一.APK 结构 Android 应用的 APK(Android Package)安装文件是一个包含所有代码和资源文件的压缩包 image.png AndroidManifest.xml 是Andro ...
- 新版RE管理器 (Root Explorer)修改方法(去广告,时间日期排序,默认文件夹优先)
1.由于很多人不是真正的Google Play商店花钱买的,所以安装后有谷歌广告 2.新版的时间日期排列比较蛋疼 3.有些人喜欢默认文件夹优先显示 首先你要会反编译,会使用apktool,然后你要下载 ...
- Android开机画面的具体修改方法
制作开机Logo 方法一: Drivers/video/logo/logo_linux_clut224.ppm是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个 ...
- 启动MySQL:net start mysql出现问题+本地Mysql忘记密码的修改方法
解决方法1:(普遍) 管理员开启cmd,进入bin文件夹,方法见图: cmd内输入:cd C:\Program Files\MySQL\MySQL Server 8.0\bin这里的路径要换成你自己b ...
- debug运行可以,release运行报错的原因及修改方法
通常我们开发的程序有2种模式:Debug模式和Release模式在Debug模式下,编译器会记录很多调试信息,也可以加入很多测试代码,方便我们程序员测试,以及出现bug时的分析解决Release模式下 ...
- hbuildx打包成apk_HBuilder打包webapp为apk的方法
本文主要为大家带来一篇利用HBuilder打包前端开发webapp为apk的方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧,希望能帮助到大家. 现在的前端开发可谓是 ...
- tensorflow中keep_prob的修改方法
tensorflow中keep_prob的修改方法 warning: WARNING:tensorflow:From D:\software\pycharm_location\venv\Dehaze- ...
- MongoDB进阶系列(11)——“改”的那些事(二)文档的keyvalue为数组的修改方法...
2019独角兽企业重金招聘Python工程师标准>>> 本文将讨论关于文档中keyvalue为数组的情况如何修改数组. 首先,创建一个c4集合,集合中的文档包含一个arrint字段, ...
- php104.tmp,ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
这是修改之前的代码 if(!empty($_FILES)){ if(!empty($_FILES[org_positive])){ $org_positive = request()->file ...
最新文章
- 清空memcached中缓存的数据的方法
- memset 数组初始化
- appinventor离线版下载_Chrome 离线安装包下载
- python练习题1
- 双路由器双小型交换机组建公司网络,2个公网IP上网案例(转载)
- 斌伯的博客园Blog开张大吉
- html中的空格表示
- chm 转 html 带索引,chm 的项目文件中包含创建 chm 文件所需的HTML文件信息、目录表文件信息、索引文件信息、窗口属 - 试题答案网问答...
- H3C DHCP中继实验
- django中间件修改,以及TypeError: object() takes no parameters的异常处理
- PhotoZoom放大图片,真的能无损吗?
- 雷达信号处理---线性调频信号脉冲压缩MATLAB实现
- 拼多多砍价群大王:砍价界的扛把子
- C++11的模板类型判断——std::is_same和std::decay
- 迪赛智慧数——其他图表(盒须图):员工离职率分析
- EasyClick脚本开发教程(3)连接设备与屏幕映射
- html5 视差地图,用HTML5构建高性能视差网站的图文代码详解
- 详解C盘Windows文件夹里重要文件作用
- react入门-列表渲染(动态获取数据)
- 实验四 基于PPTP的远程VPN实现【网络安全】
热门文章
- (阅读笔记)脑中线偏移测量及其自动化技术与算法综述
- 第六章 网上银行与电子支付-1
- PM notifier
- Win10 中主机名hosts 文件位置
- git push/pull命令
- java map.put map_java中map的put方法
- Oracle between and
- maven下载Nexus私服jar包,报错Not authorized
- TM1638驱动显示板(8数码管+8LED+8按键)单片机C语言程序(按键功能)
- 严重: Unable to set localhost. This prevents creation of a GUID. Cause was: cloud: cloud