以下代码的修改是针对android平台研发的,另外如果没有系统源码的情况下,通过逆向修改ROM中的对应文件,也是可以做到的。
之所以有这样需求,是因为假如是你自己的ROM,需要对自己的某个APP授予SMS写入权限,可以通过修改如下代码中的OTHERSMS_PACKAGE_NAME,换成你自己APP的package name就可以了。
如果类似QQ通讯录这种应用,在可以获取ROOT 的权限下,能不能做到呢,我认为也是可以实现的,可以在内存中注入相关的代码片段,尝试分析了一下QQ通讯录,发现它里面在获取ROOT后,是有注入操作的,但不是实现下面的功能,QQ通讯录当前的版本在Android 4.4 (KitKat)上,仍然存在问题。
不多说了,直接上代码,自己研究喽~
diff --git a/src/java/com/android/internal/telephony/SmsApplication.java b/src/java/com/android/internal/telephony/SmsApplication.java index 0582df8..39dee4c 100644 --- a/src/java/com/android/internal/telephony/SmsApplication.java +++ b/src/java/com/android/internal/telephony/SmsApplication.java @@ -49,6 +49,7 @@ public final class SmsApplication { static final String LOG_TAG = "SmsApplication"; private static final String PHONE_PACKAGE_NAME = "com.android.phone"; private static final String BLUETOOTH_PACKAGE_NAME = "com.android.bluetooth"; + private static final String OTHERSMS_PACKAGE_NAME = "com.example.demo"; private static final String SCHEME_SMS = "sms"; private static final String SCHEME_SMSTO = "smsto"; @@ -357,6 +358,20 @@ public final class SmsApplication { // No BT app on this device Rlog.e(LOG_TAG, "Bluetooth package not found: " + BLUETOOTH_PACKAGE_NAME); } + + try { + PackageInfo info = packageManager.getPackageInfo(OTHERSMS_PACKAGE_NAME, 0); + int mode = appOps.checkOp(AppOpsManager.OP_WRITE_SMS, info.applicationInfo.uid, + OTHERSMS_PACKAGE_NAME); + if (mode != AppOpsManager.MODE_ALLOWED) { + Rlog.e(LOG_TAG, OTHERSMS_PACKAGE_NAME + " lost OP_WRITE_SMS: (fixing)"); + appOps.setMode(AppOpsManager.OP_WRITE_SMS, info.applicationInfo.uid, + OTHERSMS_PACKAGE_NAME, AppOpsManager.MODE_ALLOWED); + } + } catch (NameNotFoundException e) { + // No BT app on this device + Rlog.e(LOG_TAG, "3rd sms package not found: " + OTHERSMS_PACKAGE_NAME); + } } } return applicationData;
欢迎转载:http://www.yinqisen.cn/blog-310.html
相关推荐
Android 4.4 Kitkat Phone工作流程浅析(十二)__4.4小结与5.0概览 资源文件 文章链接: http://blog.csdn.net/yihongyuelan
在Android 4.4 KitKat系统中,PSensor(Pressure Sensor)是负责处理气压传感器数据的关键组件。本文将深入探讨PSensor的工作流程,帮助理解Android如何获取、处理和利用这些传感器数据。气压传感器在现代智能手机中...
在Android 4.4 KitKat系统中,"通话显示"查询流程是一个关键的功能,它涉及到用户界面如何正确地展示联系人或来电者的信息。在这个专题中,我们将深入探讨这一过程,重点关注`displayName`的获取机制,这是显示联系...
demo 主要功能是接收短信,支持android 4.4以上版本和android 4.4以下版本。在写代码时也在网上找了好多类似的代码,但是没有找到一个完整的适合新手学习的,都是一些只支持android4.4以下的android系统应用demo,...
Android SDK (SDK Platforms)-android-19.zip 是一个包含了Android开发平台版本19的压缩包,主要用于Android开发者在构建、测试和调试针对Android 4.4 KitKat系统应用时使用。这个压缩包提供了必要的API库、工具和...
在Android 4.4(KitKat)及更高版本中,为了增强用户体验和安全性,系统提供了更高级别的API来处理短信,包括拦截和删除短信。本文将深入探讨Android 4.4+短信拦截删除的相关知识点。 首先,我们要了解的是`...
目前公版上scrcpy需要android5.0, 4.4刚刚调通 测试至少部分手机上可用 有旧手机有需要的可以帮忙看下能不能用。csdn没分了 挣点分见谅 Scrcpy-GUI群里已经共享 穿鞋144cm
Android 4.4 SDK(软件开发工具包)是Android开发者为构建、测试和发布针对Android 4.4 KitKat版本应用的重要工具集。这个版本的SDK包含了一系列的文档、库、示例代码、调试工具和其他资源,使得开发者能够充分利用...
Android 4.4 SDK(Software Development Kit)源码包是一个为开发者提供的完整工具集,用于构建、调试和优化在Android 4.4 KitKat版本上运行的应用程序。这个源码包包含了Android操作系统的源代码,使得开发者能够...
"修改后的android4.4原生launcher3"是针对Android 4.4 KitKat系统核心启动器应用——Launcher3的定制版本。这个启动器是用户界面的重要组成部分,它负责管理手机或平板电脑的主屏幕、应用程序抽屉以及快捷方式。在...
《Android 4.4 SDK Reference》是Android开发者的重要参考资料,它详尽地涵盖了在Android 4.4(KitKat)版本中使用的API和技术。这份官方文档对于任何希望深入理解和开发针对此版本Android应用的程序员来说,都是不...
针对Android 4.4(KitKat)的VLC源码,意味着这个版本是为适配这个特定Android系统版本优化的。Android 4.4发布于2013年,随着时间推移,可能会出现与新版本不兼容的问题,尤其是在多媒体处理方面。描述中提到的“老...
Android 4.4,也被称为KitKat,是Google在2013年推出的Android操作系统版本。这个版本的源代码对于开发者来说是极其重要的,因为它揭示了系统的内部工作原理,允许他们深入理解Android的运行机制,并进行自定义开发...
Android 4.4,代号KitKat,是Google推出的Android操作系统的一个重要版本。它带来了许多改进和新特性,对于开发者来说,深入理解其源码是提升开发技能、优化应用性能的关键。本篇文章将从Android 4.4源码的角度出发...
TI-BLE-Sensortag-Android ti ble android 4.4 kitkat源代码 开发人员版本,用于与TI CC2541 Sensortag进行控制/交互。 允许对选定的GATT UUID特性进行扫描,连接和读写(使用自定义键盘)。
Android 4.4,代号KitKat,是Google推出的Android操作系统的一个重要版本。它带来了许多改进和新特性,对于开发者来说,深入理解Android 4.4的源码至关重要,这能帮助我们更好地优化应用性能、提升用户体验。本文将...
在Android 4.4(KitKat)上使用这个版本的Chrome,用户可以期待以下几点: 1. **更好的兼容性**:由于此版本是为Android 4.4设计的,它能够更好地与旧版本的系统集成,避免了由于系统版本过低而导致的兼容性问题。 ...
文章《Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析》资源下载 http://blog.csdn.net/yihongyuelan/article/details/21069061 主要包含: MTK Android 4.4 拨号时序图(多张) MTK Android 4.4 ...
当我们谈论"Android4.4 系统签名"时,我们涉及到的是在Android 4.4(KitKat)版本上对APK(Android应用程序包)进行签名的过程。这个过程用于验证应用程序的来源,并确保它们在设备上正确运行。 首先,让我们来看看...
**Android 4.4W (KitKat-Watch) SDK(API Level 20)详解** Android 4.4W,全称是Android 4.4 for Wearables,是Google为可穿戴设备如智能手表设计的一个操作系统版本。这个版本是Android 4.4 KitKat的扩展,专注于...