15 Android系统安全(简要)

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即可

原文地址:https://www.cnblogs.com/heixiang/p/10976901.html

时间: 2024-11-05 20:25:35

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

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

平台信息:内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博客:http://weibo.com/cpjphone 从在校时玩单片机的点阵屏,到工作后android系统下的LCD,他们像一条流水线,顺应,简单的原理构成了复杂的结构: 我们来梳理一下: 玩51用的点阵 玩51用的lcd1602 玩51.32用的TFT彩屏 对于点阵的原理相比大多数朋友都非常熟悉,

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

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个简单的例子来学习Android系统的广播机制,为后续分析广播机制的源代码作准备. 在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式

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

在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验.Android系统为我们提供了一个Service类,我们可以实现一个以Service为基类的服务子类,在里面实现自己的计算型逻辑,然后在主进程通过startService函数来启动这个服务.在本文中,将详细分析主进程是如何通过startService函数来在新进程中启动自定义服务的. 在主进程调用startService函数时,会通过Binder进程间通信机制来

android系统联系人分组特效实现(2)---字母表快速滚动

要实现这种功能,只需要在   android系统联系人分组特效实现(1)---分组导航和挤压动画  的基础上再加上一个自定义控件即可完成. 1.新建项目,继续新建一个java类,BladeView,用于作为导航栏 public class BladeView extends View { private Handler handler = new Handler(); public BladeView(Context context, AttributeSet attrs) { super(co

Android 随想录之 Android 系统架构

应用层(Application) Android 的应用层由运行在 Android 设备上的所有应用程序共同构成(系统预装程序以及第三方应用程序). 系统预装应用程序包含拨号软件.短信.联系人.邮件客户端.日历.地图以及浏览器等提供基础功能的应用程序构成.第三方应用程序则是基于 Android SDK(Android Software Development Kit)进行开发,并受到框架层 SDK 接口约束的应用程序.两者的区别在于,系统预装应用比第三方应用拥有更高的系统使用权限:系统预装应用可

android 系统定制的小技巧

<转>android 系统定制的小技巧(网络收集) 1开机图片: android-logo-mask.pngandroid-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shine.png./frameworks/base/core/res/assets/image

android 系统定制的小技巧(网络收集)

1开机图片: android-logo-mask.png android-logo-shine.png 这两个图片一个在上一个在下 ./out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shine.png ./frameworks/base/core/res/assets/images/android-logo-shine.png

Android系统匿名共享内存(Anonymous Shared Memory)Java调用接口分析

一.Ashmem驱动程序 ~/Android/kernel/goldfish ----include ----linux ----ashmem.h ----mm ----ashmem.c 驱动程序具体解释请看<Android系统源码情景分析>.作者罗升阳. 二.执行时库cutils的匿名共享内存訪问接口 ~/Android/system/core ----libcutils ----ashmem-dev.c 具体解释请看<Android系统源码情景分析>,作者罗升阳. 三.Memo

Android系统中的dp和px的转换

android系统中DP和SP的转化:1.首先分析TypedValue.java 可以调用以下代码获得dp的值 TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20,getResources().getDisplayMetrics()); public static float applyDimension(int unit, float value,DisplayMetrics metrics) { switch (unit) {