Android的用户和第三方软件,Android组件和数据安全

手机root后的问题:1.系统不稳定,2.病毒入侵,3.数据泄露

Root原理:

Root分两类:1。临时root,2。永久root

Root后的问题:1。系统不稳定,2。易中毒,3。隐私泄露

Android权限检查机制:没有权限而执行特定操作的软件会抛出SecurityException异常

所有权限位于/frameworks/base/data/etc/platform.xml

权限分两类:

  1. 直接读写设备的底层(low-level)权限:
  2. 间接读写设备的高层(high-level)权限:通过Framework层的权限检查代码进行权限控制
    1. 根据检查的内容和处理方法分成:
      1. 检查权限返回结果型
      2. 检查权限失败抛出异常型
      3. Uri权限控制型
      4. Uri权限检查并返回结果型
      5. Uri权限检查失败抛出异常型

Android程序中资源访问包括使用: Framework提供功能(系统提供权限),访问其它程序的组件(自定义权限)

串谋权限攻击:

Activity组件:是用户唯一能够看见的组件,Android系统组件在指定Intent过滤器(intent-filter)后,默认是可以被外部程序访问的。

android:exported属性值"false"组件则不能被外部程序调用。

外部程序指:签名不同,用户ID不同的程序,而签名相同且用户ID相同的程序在执行时共享同一个进程空间

android:permission属性:指定一个权限字符串,特定的Activity能够程序访问

android:excludeFromRecents属性值"true":程序运行时就不会在显示最近运行过的程序列表中

Activity劫持(属于用户层的安全):用户使用带有恶意Activity劫持功能的程序后,启动一个带FLAG_ACTIVITY_NEW_TASK标志的Activity覆盖正常的Activity获取用户相关信息

Broadcast Receiver:

特点:多数情况下,广播是使用Action来标识其用途,由sendBroadcast()方法发出

分两类:

  1. 无序广播(类似并联):
  2. 有序广播(类似串联):调用abortBroadcast()中止广播

    广播优先级响应:动态注册的接收者 > 静态注册的接收者,

    静态注册的接收者的 android:priority属性值决定,越大,优先级越高

Service:Android系统中的后台进程组件,在后台进行耗时操作

访问方法:

startService():启动服务,可以被用来实现串谋攻击

bindService():帮定服务,可以被用来实现串谋攻击

stopService():停止服务,对程序功能进行恶意破坏

Content Provider:内容提供者,用于程序之间的数据交换

通过提供存储与查询数据的接口来实现进程之间的数据共享

提供的方法:

数据安全

1.外部数据:直接使用File类在外部存储设备上读写文件

2.内部数据:所有软件存放私有数据的地方,openFileInput()与openFileOutput()方法来读写程序私有数据目录

数据通信安全:软件与软件,软件与网络服务器之间进行数据通信引发的安全问题。

Android系统中4大组件是通信的主要手段,数据的传递是依靠Intent完成。

Intent能够传递所有基础类型与支持序列化类型的数据,Intent中附加数据通过Intent类中的putExtra()完成

Intent数据传输的问题:Intent没有指定目的组件的名称,导致Intent中的数据可能被第三方程序获取,使用sendBroadcast()传递的Intent本身就是暴露的。

网络数据通信问题是:网络嗅探

ROM:Read Only Memory只读存储器,存放手机固件的代码存储器

种类:

  1. 官方
  2. 第三方
  3. 个人

ROM制作流程:

  1. 解包
    1. 线刷:img文件使用unyaffs解压
    2. 卡刷:zip通用压缩包
  2. 修改
  3. 打包
    1. 线刷:直接压缩软件即可        签名需要:针对厂商ROM工具签名
    2. 卡刷:需要厂商ROM工具                 使用signapk.jar即可

15 Android系统安全(简要)的更多相关文章

  1. [转]Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划

    转自:Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划 前面我们从Android应用程序与SurfaceFlinger服务的关系出发,从侧面简单学习了Surfa ...

  2. android系统平台显示驱动开发简要:LCD基本原理篇『一』

    平台信息:内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博客 ...

  3. Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8010977 前面我们从Android应用程序与 ...

  4. Android系统中的广播(Broadcast)机制简要介绍和学习计划

    在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个 ...

  5. Android系统在新进程中启动自定义服务过程(startService)的原理分析

    在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验.Android系统为我们提供了一个Service类,我们可以实现 ...

  6. 【转】Android系统开篇

    版权声明:本站所有博文内容均为原创,转载请务必注明作者与原文链接,且不得篡改原文内容.另外,未经授权文章不得用于任何商业目的. 一.引言 Android系统非常庞大.错综复杂,其底层是采用Linux作 ...

  7. Android之 看“马达”如何贯通Android系统 (从硬件设计 --> 驱动 --> HAL --> JNI --> Framework --> Application)

    在Android 2.3(Gingerbread) 系统的时候,我写过一篇关于“Android 震动马达系统“的文章,当时的Linux内核还是2.6版本的.写那篇文章的目的,是想彻底的了解从硬件到驱动 ...

  8. Android系统init进程启动及init.rc全解析

    转:https://blog.csdn.net/zhonglunshun/article/details/78615980 服务启动机制system/core/init/init.c文件main函数中 ...

  9. 最新Android系统版本与API等级对应关系表

    最新Android系统版本与API等级对应关系表 从Android官网拷过来的,方便查阅... 官网地址:https://developer.android.com/guide/topics/mani ...

随机推荐

  1. centos virtualbox虚拟机无法连接外网

    各种方法都试了,不好使. 最后重启了很多次,最后一次成功了... ----详情---- 发生的原因是因为突然断电导致的异常. 先通过systemctl restart network 来启动,结果报错 ...

  2. CSS选择器分类整理

    读完<CSS权威指南>,对选择器有如下整理: selector 本质上是执行元素样式匹配规则,我们可以利用它来限定某些元素 选择器类型: <!-- 实体,即HTML中存在 --> ...

  3. V8 引擎如何进行垃圾内存的回收?

    JS 语言不像 C/C++, 让程序员自己去开辟或者释放内存,而是类似Java,采用自己的一套垃圾回收算法进行自动的内存管理.作为一名资深的前端工程师,对于JS内存回收的机制是需要非常清楚, 以便于在 ...

  4. 在Proxmox VE上运行OpenWrt/LEDE虚拟机——导入OW/LEDE固件文件到虚拟机中

    PVE的OW/LEDE虚拟机初始化创建完成后,需要将编译好的固件文件上传到PVE主机上,然后转换为更适合KVM使用的磁盘映像格式并导入到OW/LEDE虚拟机中,这样就可以更好地使用基于KVM的OW/L ...

  5. 【原创】在windows下使用xampp搭建phpcms v9

    我的操作环境: 操作系统:windows 7       64 位操作系统(有点古老,哈哈) 1.下载php环境和phpcmsv9源代码:phpcms v9 的源码:phpcms_v9.5.10_UT ...

  6. sts问题合集

    背景:用来记录在使用sts过程中遇到的相关问题 Version 当前jdk版本号 of the JVM is not suitable for the this product.Version:1.8 ...

  7. 使用 Mockito 辅助单元测试

    了解过单元测试相关概念的人应该会清楚一个概念:一个好的单元测试应该是与环境无关的,每一个测试都是相互独立的.亦即你可以在任何地方,以任意顺序运行这些测试,最后得到的结果是一样的.但是我被测试的类/方法 ...

  8. 【LeetCode】缺失的第一个正数【原地HashMap】

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11 ...

  9. 消除VS中动态申请二维数组C6011,C6385,C6386的警告

    动态申请二维数组,无非就是通过指针来实现.@wowpH 过程分三步:1.申请内存,2.使用数组,3.释放内存. 代码如下: /************************************* ...

  10. Golang读取并修改非主流配置文件

    今天工作中碰到的问题,要求修改此配置文件,没看出来是什么格式,用了下面的思路: mysql { # If any of the files below are set, TLS encryption ...