SELinux --

在 Android 5.0+ google 加入了新的安全模块即SELinux,SELinux是一种Android上面的安全机制,针对Linux的安全加强系统

我们可以通过配置SELinux的相关policy,来定制自己的手机的一些权限,比如,我们可以完全让root用户没有任何的权限和user一样

在android里面,有两个类型,一种是文件,一种是进程,在android上面,adb shell之后进入手机,ps -Z可以查看当前进程所拥有的selinux的权限

配置selinux,需要linux内核首先是支持selinux的,另外需要android的selinux的配置文件,在extern/sepolicy目录

SELinux的配置规则 -- a. App进程 -> mac_permissions.xml

b. App数据文件 -> seapp_contexts
    c. 系统文件 -> file_contexts
    d. 系统属性 -> property_contexts
写te文件,一般的语法 --
rule_name source_type target_type:class perm_set
为source_type设置一个rule_name的规则,规则是对target_type的class 进行 perm_set的操作

init --

init 下有两个比较核心的文件分别是

system/core/rootdir/init.rc -- 配置了需要启动的Linux系统进程一些简单任务,是init.c启动/init需要执行的脚本和一般初始化操作

system/core/init/init.c -- Linux 启动系统文件第一个应用就是/init 然后对init.rc/init.xx.rc 执行任务解析

今天笔者会利用这两个模块进行一个进程联网白名单测试验证,我需要在SELinux下配置我的启动自定义的系统进程服务,在external/sepolicy下配置自己的.te 文件,然后给与我的 system/bin/xxx 这个自定义进程root 和 +x ,最后我写一个app移植到os里,或者install -r 对 system/bin/xxx 这个进程进行间接通信,让它去做我要屏蔽的某个进程,即根据pid/package-name进行白名单验证。

在external/sepolicy 下配置 .te 文件,自定义命名为 tianetd

在external/sepolicy 下配置 .te 文件,自定义命名为 untrusted_app.te,用来做白名单校验

vi 之后将他们 mv 到external/sepolicy 目录下,随后开始进行测试,因为 test app 先前已经完成了,直接移植到os ,在out下将apk文件重新替换,之后 snod rom 烧录,然后在 test app 上进行测试,在测试过程中出现了一个 bug ,导致我的 test app pid 直接被系统 killer 掉了,通过

MTKLOGGER 进程获取到如下日志

The Linux kernrl does not support iptables ,Linux 内核不支持iptables这个操作,原因是我是在 LV19 的设备上测试的,于是笔者换了 5.1 的设备开始新的一轮测试,但是我还是觉得少了点什么东西没有配置,想了一下忘记配置 init.rc 初始化任务了,于是笔者在init.rc 下加入自己的服务需要的初始化配置

最后在out目录下对tianetd进行了赋权,root/+x

权限

snod rom ,install image file 测试,测试完美通过!顺带说一下,SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问,需要在external/sepolicy下配置权限需要的 .te 文件

Android SELinux 的认知以及 init 的相关知识,Linux 环境利用这2个模块进行白名单测试 -- 架构分析相关推荐

  1. Android UID的分配、查看及相关知识

    1.UID概念 uid: android中uid用于标识一个应用程序,uid在应用安装时被分配,并且在应用存在于手机上期间,都不会改变.一个应用程序只能有一个uid,多个应用可以使用sharedUse ...

  2. Android 基础知识 -- Linux环境搭建

    Android 开发工具下载网站:http://www.androiddevtools.cn/ 1 JDK 1.1 下载JDK,解压后放到/usr/lib/jvm/目录 sudo mv jdk1.7. ...

  3. shell 脚本实战笔记(7)--集群网络相关知识和环境搭建

    前言: 对网络相关的知识, 做下笔记. 包括IP地址A/B/C的分类, 静态地址的配置/DNS配置, 以及网卡相关信息查看. *) A/B/C/D类网络地址的划分 IP地址=网络地址+主机地址 或 I ...

  4. Android UID相关知识

    uid pid gid gids 的含义和作用 uid 的分配 查看应用UID 的几种方式 通过uid获取包名,通过包名获取uid uid pid gid gids 的含义和作用 uid: andro ...

  5. Android源码配置第三方应用电池白名单流程分析笔记

    这里以MTK6765 Android S举例说明,Android系统在加载客户应用白名单的过程. 首先Android系统可以根据不同手机厂商的需要进行源码的定制,当然定制应用白名单也是可以的,一般情况 ...

  6. No Network Security Config specified问题和android网络白名单的配置

    一.确认是否添加网络权限 在AndroidManifest.xml文件中(application标签之外)添加 <uses-permission android:name="andro ...

  7. 【PIC单片机】-- IIC相关知识

    文章目录 文章目录 00 写在前面 01 IIC相关知识 02 时序 03 寄存器 04 外设模块EEPROM 05 结尾 00 写在前面 该系列的文章,源自于担任过PIC单片机课程的助教,主要向学弟 ...

  8. Android 10.0系统启动之init进程-[Android取经之路]

    摘要:init进程是linux系统中用户空间的第一个进程,进程号为1.当bootloader启动后,启动kernel,kernel启动完后,在用户空间启动init进程,再通过init进程,来读取ini ...

  9. Android SELinux开发入门指南之如何增加Native Binder Service权限

      Android SELinux开发入门指南之如何增加Native Binder Service权限 Android SELinux开发多场景实战指南目录: Android SELinux开发入门指 ...

最新文章

  1. Java 静态变量,静态方法,静态常量(java static 关键字)
  2. 标签选择器用于修改html元素默认的样式,html – 为什么CSS选择器与 sign(直接子)覆盖默认样式?...
  3. scala编写排序算法
  4. 模型web迁移延时太长,机器学习神器Cortex 能一键解决吗?
  5. Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
  6. Android网络编程
  7. 2009年9月三级网络技术51CTO版考前压轴试题
  8. 调用函数,计算分段函数的值
  9. vasp和ms_科学网—VASP如何计算铁磁和考虑强关联作用 - 叶小球的博文
  10. node vue 合并项目_吐血整理最佳实践:SpringBoot整合Vue前后端分离开发
  11. Oracle出现ora-01045的解决方法-可用
  12. 未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译。
  13. Session存放token/获取token,销毁session
  14. 蓝桥杯省赛 2021 杨辉三角形 python
  15. easybcd 无法添加linux条目,easybcd无法添加条目怎么办-easybcd无法添加条目的解决办法...
  16. R语言使用t.test函数执行t检验获取总体平均值的置信区间(默认输出结果包括95%置信水平的置信区间)
  17. 基于MATLAB对低照度图像进行直方图均衡化和同态滤波操作
  18. YY内置灯笼号挂号工具
  19. Object Detection经典代码与文章
  20. 使用Python进行数据分析——线性回归分析

热门文章

  1. 洛谷B2058 奥运奖牌计数
  2. 【vue3 组件生命周期流程 功能】13个生命周期详解
  3. 待办事项-JavaScript实现
  4. MySQL主从不一致的修复过程(r10笔记第96天)
  5. appollo-二次规划ST速度优化
  6. appollo消息服务器,搭建Apache apollo消息队列服务、简单访问
  7. 《高质量程序设计指南——C/C++语言》之开篇记
  8. Win10系统桌面图标突然变成白色如何恢复
  9. 腾讯云视频点播-java sdk 批量修改视频分类
  10. Core dump去哪里了?