IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android群英传笔记-Android系统安全与安全机制 -> 正文阅读

[移动开发]Android群英传笔记-Android系统安全与安全机制

系统消息

Android系统消息获取

获取Android系统信息,代码中可以两个方面获取
android.os.Build
System.Property。

当然,也可以通过手机ADB来获取设备信息,在/proc目录中查看,或者使用getprop命令

android.os.Build

包含系统编译时大量设备,配置信息
例如
Build.BRAND//Android系统定制商
Build.DEVICE //设备参数
Build.FINGERPRINT //唯一编号
Build.Model //版本
Build.SERLAL //硬件设备序列号 这个参数之前一个项目中应用到过
还有其他参数,使用时查寻即可

SystemProperty

也是包含系统的一些配置属性值和参数,许多获取值和上面的os.Build是一样的。常用的有系统版本,java版本,java Class版本等属性。

Android apk 应用信息获取

查看apk应用信息,有两个强大的助手,PM(PackageManger)和AM(ActivityManger),这两个也是ADB的两个指令集。我们这里讨论如何在代码中使用他们获取应用信息。二者各有侧重

PackageManager

PackageManger主要管理mainifest文件里的信息,包含Activity的配置信息以及mainnifset文件的节点信息。这些信息被封装在一些类里面,我们可以获取使用。

  • ActivityInfo:包含 < activity > 标签和< receiver>标签里的所有信息。例如name,icon,label,launchmod等等。
  • ServiceInfo:包含< service>里的信息
  • AplicationInfo:包含< application>里的所有信息,这里面包含许多Flag,例如FLAG_SYSTEM表示系统应用,FLAG_EXTERNAL_STORAGE表示安装在sd卡上的应用,这些Flag,可以用来判断应用类型
  • PackageInfo:包含mainnifest文件里 所有 activity与service的信息
  • ResolveInfo:封装< intent>上一级的信息,可以是ActivityInfo和ServiceInfo等包含Intent的信息。用来帮助我们找到那些包含特定Intent条件的信息,比如分享功能,播放功能。需要去学习一下intent-filter 标签的知识

RespvleageInfo的应用

https://blog.csdn.net/wang_yubin/article/details/8564335?_t_t_t=0.8696009771752313

知道这些类的意义之后,只用根据功能,通过相应的方法获取到类,然后解析使用即可。具体使用可以看书里的例子。

ActivityMangaer

PackageManager重点在于获取应用包信息(mainnifest文件节点信息),ActivityManager重点获取运行的应用信息

内存信息

  • ActivityManager.MemoryInfo: 全局内存信息,包含十分重要的字段,availMem-系统可用内存,totalMerm-总内存,threshold-低内存阈值,lowMermory-是否处于低内存
  • Debug.MemoryInfo:系统进程下的内存信息
  • RunningAppProcessInfo:运行进程信息,processName-进程名,pid-进程pid(进程唯一标识),uid-进程uid(一般表示进程的创建者)。pkgList-该进程下的所有包
  • RunningServiceInfo:封装运行的服务信息,包含一些服务进程信息,例如activeSince-服务 被第一次激活的世界,方式。forground-服务是否在后台运行。

Packages.xml文件解析

该文件相当与系统的应用花名册,系统apk进行安装,升级,删除时,它会被更新。目录位于/data/system/
可以通过ADB Pull命令将它导入本地。

  • < Permissions>标签:定义目前系统所以权限,包含系统的和apk自定义的

  • < Package>标签:代表一个apk的属性,包含包名与路径(厂商app和三方app目录不同)等等

  • < perms>:对应mainnifest文件中的标签

Android安全机制

Android安全机制

五道防线

  • 代码混淆 proguard:混淆关键代码,压缩代码,优化编译后的字节码。代码混淆在开发中是一定会使用到的,需要进行学习
  • 权限控制:AndroidMainifest文件权限声明,权限检查机制。一般使用者,会使用permissionX等框架进行权限动态申请。
  • 应用签名机制-数字证书:app签名用于保护作者对其app的信任关系,只有拥有相同数字签名的app,才被认为是同一App。安卓系统不会安装没有签名的app。
  • Linux内核层安全机制-Uid,访问权限控制:安卓继承linux的安全特性,文件访问机制-user,group,other与读(r),写(w),执行(x)的不同组合实现权限控制。一般只有system和root用户才能访问系统文件
  • 安卓虚拟机-沙箱隔离:每个安卓app运行在单独的虚拟机中,使得应用之间相互隔离,通常情况下,不能相互访问。一个应用崩溃,也不会导致其他app异常。

一些apk反编译工具的介绍,安卓安全隐患,见书里。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:41:49  更:2022-03-15 22:44:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:16:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码