Android系统架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFYDl9Fi-1617622964848)(en-resource://database/723:1)]
可以看出
Android系统一共分为4层:
1、Application
2、FrameWork层
3、Library层+Android Runtime
4、Linux Kernel
Android Framework
其中AndroidFramework在第二层,他是把一些基本的的或者和设备打交道的服务抽象起来作Api给Application应用调用。这里是用Android中最底层的java代码。里面通过JNI调用c、c++(Library)来和设备打交道,最终调用到Linux内核。
也就是说这一层代码用了java,但是使用了jni方式调用了底层逻辑提供给上层应用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VdRHoN3i-1617622964851)(en-resource://database/724:1)]
AndroidFramework主要包含以下模块:
- ActivityManager Service:这是一个Activity的管理者,负责管理所有Activity的生命周期。
- WindowManagerService:它是手机屏幕的的管理者,管理着屏幕的详细情况,所有对屏幕的操作最终都是通过它,控制着屏幕的显示、隐藏和层次处理。
- ComtentProvider:内容提供者,给Android提供了一个应用访问另一个应用的数据的能力。
- ViewSystem:系统试图,包括列表,网格,文本和按钮的测量、排列、绘制。
- Notification Manager:通知管理者,负责通知的管理。
- PackageManger Service:包管理者,包信息的管理。
- Telephoney Manager:通信管理者
- Resoure Manager:资源管理者
- Location Manager:位置管理者
- Xmpp Manager:推送管理者。
FrameWork关于系统界面显示的三大核心类文件:
- View.java 负责布局的排列,绘制,测量和事件分发,按键事件。
- ActivityManagerService.java 管理所有应用程序的Activity等
- WindowManagerService.java 给所有应用程序分配窗口,并管理这些窗口。
Android安全逆向开发人员关系的几个模块
可以了解到的是xposed可以hook到FrameWork层的java代码
1.PackageManger Service 了解应用apk的打包安装过程
2.ActivityManager Service 了解apk的启动过程
3.WindowManagerService 群控处理