`
wyk86485480
  • 浏览: 29174 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

android4.4(kitkat),如何让APP可以直接写入SMS短信

阅读更多

以下代码的修改是针对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概览资源

    Android 4.4 Kitkat Phone工作流程浅析(十二)__4.4小结与5.0概览 资源文件 文章链接: http://blog.csdn.net/yihongyuelan

    Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析 图片资源

    在Android 4.4 KitKat系统中,PSensor(Pressure Sensor)是负责处理气压传感器数据的关键组件。本文将深入探讨PSensor的工作流程,帮助理解Android如何获取、处理和利用这些传感器数据。气压传感器在现代智能手机中...

    Android 4.4 Kitkat Phone工作流程浅析(十)__"通话显示"查询流程 图片资源

    在Android 4.4 KitKat系统中,"通话显示"查询流程是一个关键的功能,它涉及到用户界面如何正确地展示联系人或来电者的信息。在这个专题中,我们将深入探讨这一过程,重点关注`displayName`的获取机制,这是显示联系...

    android 4.4 短信接收

    demo 主要功能是接收短信,支持android 4.4以上版本和android 4.4以下版本。在写代码时也在网上找了好多类似的代码,但是没有找到一个完整的适合新手学习的,都是一些只支持android4.4以下的android系统应用demo,...

    Android SDK (SDK Platforms)-android-19.zip

    Android SDK (SDK Platforms)-android-19.zip 是一个包含了Android开发平台版本19的压缩包,主要用于Android开发者在构建、测试和调试针对Android 4.4 KitKat系统应用时使用。这个压缩包提供了必要的API库、工具和...

    Android4.4+短信拦截删除

    在Android 4.4(KitKat)及更高版本中,为了增强用户体验和安全性,系统提供了更高级别的API来处理短信,包括拦截和删除短信。本文将深入探讨Android 4.4+短信拦截删除的相关知识点。 首先,我们要了解的是`...

    scrcpy-win64-kitkat.zip android4.4手机电脑同屏

    目前公版上scrcpy需要android5.0, 4.4刚刚调通 测试至少部分手机上可用 有旧手机有需要的可以帮忙看下能不能用。csdn没分了 挣点分见谅 Scrcpy-GUI群里已经共享 穿鞋144cm

    Android 4.4 SDK 文档

    Android 4.4 SDK(软件开发工具包)是Android开发者为构建、测试和发布针对Android 4.4 KitKat版本应用的重要工具集。这个版本的SDK包含了一系列的文档、库、示例代码、调试工具和其他资源,使得开发者能够充分利用...

    android4.4SDK源码包

    Android 4.4 SDK(Software Development Kit)源码包是一个为开发者提供的完整工具集,用于构建、调试和优化在Android 4.4 KitKat版本上运行的应用程序。这个源码包包含了Android操作系统的源代码,使得开发者能够...

    修改后的android4.4原生launcher3

    "修改后的android4.4原生launcher3"是针对Android 4.4 KitKat系统核心启动器应用——Launcher3的定制版本。这个启动器是用户界面的重要组成部分,它负责管理手机或平板电脑的主屏幕、应用程序抽屉以及快捷方式。在...

    Android 4.4 SDK Reference 官方帮助文档

    《Android 4.4 SDK Reference》是Android开发者的重要参考资料,它详尽地涵盖了在Android 4.4(KitKat)版本中使用的API和技术。这份官方文档对于任何希望深入理解和开发针对此版本Android应用的程序员来说,都是不...

    适用于Android4.4版vlc源码+so库

    针对Android 4.4(KitKat)的VLC源码,意味着这个版本是为适配这个特定Android系统版本优化的。Android 4.4发布于2013年,随着时间推移,可能会出现与新版本不兼容的问题,尤其是在多媒体处理方面。描述中提到的“老...

    android4.4源码下载

    Android 4.4,也被称为KitKat,是Google在2013年推出的Android操作系统版本。这个版本的源代码对于开发者来说是极其重要的,因为它揭示了系统的内部工作原理,允许他们深入理解Android的运行机制,并进行自定义开发...

    Android4.4的source包

    Android 4.4,代号KitKat,是Google推出的Android操作系统的一个重要版本。它带来了许多改进和新特性,对于开发者来说,深入理解其源码是提升开发技能、优化应用性能的关键。本篇文章将从Android 4.4源码的角度出发...

    TI-BLE-Sensortag-Android:ti ble android 4.4 kitkat源代码-Android app source code

    TI-BLE-Sensortag-Android ti ble android 4.4 kitkat源代码 开发人员版本,用于与TI CC2541 Sensortag进行控制/交互。 允许对选定的GATT UUID特性进行扫描,连接和读写(使用自定义键盘)。

    android4.4源码 android4.4源码包 android4.4 source jar

    Android 4.4,代号KitKat,是Google推出的Android操作系统的一个重要版本。它带来了许多改进和新特性,对于开发者来说,深入理解Android 4.4的源码至关重要,这能帮助我们更好地优化应用性能、提升用户体验。本文将...

    谷歌Chrome浏览器x86版APK低版本Android4.4可用浏览器版本是72.0

    在Android 4.4(KitKat)上使用这个版本的Chrome,用户可以期待以下几点: 1. **更好的兼容性**:由于此版本是为Android 4.4设计的,它能够更好地与旧版本的系统集成,避免了由于系统版本过低而导致的兼容性问题。 ...

    Android 4.4 Phone呼叫流程分析图

    文章《Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析》资源下载 http://blog.csdn.net/yihongyuelan/article/details/21069061 主要包含: MTK Android 4.4 拨号时序图(多张) MTK Android 4.4 ...

    Android4.4 系统签名

    当我们谈论"Android4.4 系统签名"时,我们涉及到的是在Android 4.4(KitKat)版本上对APK(Android应用程序包)进行签名的过程。这个过程用于验证应用程序的来源,并确保它们在设备上正确运行。 首先,让我们来看看...

    Android 4.4W (L) SDK(API Level 20)

    **Android 4.4W (KitKat-Watch) SDK(API Level 20)详解** Android 4.4W,全称是Android 4.4 for Wearables,是Google为可穿戴设备如智能手表设计的一个操作系统版本。这个版本是Android 4.4 KitKat的扩展,专注于...

Global site tag (gtag.js) - Google Analytics