一、背景
该项目为海外欧盟市场版本,需集成三方IDS安全组件,进程运行时注入iptables指令至链表,检测网络运行状态,并收集异常日志并压缩打包成gz文件,提供给Android上层应用上报云端。
二、分析
1、将提供的组件包集成至系统vendor分区
/vendor/bin/idsLogd/vendor/lib64/libids.so/vendor/etc/ids*.conf/vendor/etc/initidsLogd.rc
2、提供可读写数据的应用目录记录日志文件
/data/vendor/idsconfig/* // 进程修改的配置文件local_log/*.json // 日志记录文件,超过一端时间或文件大小阈值会按云端格式打包至upload_log目录upload_log/*.gz //上层应用需要上传至云端的日志打包文件,上传处理后删除文件
3、处理运行过程中的selinux权限错误
组件提供方无selinux配置经验,也未提供基础权限配置,需集成过程中逐步排查解决补充。
三、实现
1、配置三方组件Android.mk脚本
# integrate the ids daemon LOCAL_PATH := $(call my-dir)# integrate the ids daemon
include $(CLEAR_VARS)
LOCAL_MODULE := idsLogd
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := bin/idsLogd
LOCAL_