无Root权限下的容器化冒险:Termux与Alpine的极限挑战

Termux高阶玩法:用proot-distro同时运行多个Linux发行版(Ubuntu+Alpine实战) 本文详细介绍了如何在安卓手机的Termux环境中,利用proot-distro工具同时安装并运行Ubuntu和Alpine等多个Linux发行版。通过实战对比,分析了两种发行版在资源占用、包管理及适用场景上的差异,为移动端开发、测试和学习提供了高效、轻量的多环境解决方案。 阅读详情

无Root权限下的容器化冒险:Termux与Alpine的极限挑战

在移动设备上构建稳定的服务环境,一直是技术爱好者们热衷探索的领域。尤其是当我们手中拥有闲置的安卓设备时,如何在不获取Root权限的前提下,实现一个可靠的服务部署平台,成为了一项兼具挑战与乐趣的技术实践。Termux作为Android上的高级终端模拟器,结合Alpine Linux这一轻量级发行版,为我们提供了一个极具潜力的解决方案。本文将深入探讨这一技术组合的实践细节,帮助你在受限环境中构建稳定服务。

1. 理解Termux与PRoot的技术基础

Termux不仅仅是一个简单的终端模拟器,它实际上提供了一个近乎完整的Linux环境,支持APT包管理器和常见的开发工具。然而,由于Android系统的安全限制,Termysu无法直接访问系统底层资源,这就需要借助PRoot这样的用户空间程序来实现更完整的Linux环境模拟。

PRoot是一种基于ptrace的系统调用拦截工具,它能够在用户空间内模拟Root权限操作,而不需要实际的Root权限。这种技术允许我们在普通用户权限下运行需要特权操作的程序,包括文件系统挂载、进程管理等。与chroot环境相比,PRoot提供了更完整的系统兼容性,特别是在Android这种特殊的环境中。

在Termux中安装PRoot环境的基本步骤:

# 更新Termux包管理器
pkg update && pkg upgrade

# 安装必要的工具链
pkg install proot proot-distro

# 查看可用的Linux发行版
proot-distro list

值得注意的是,虽然PRoot提供了很好的兼容性,但仍然存在一些限制。特别是对于需要直接硬件访问的操作,如USB设备控制或特定的网络配置,可能会遇到权限不足的问题。

提示:在开始安装前,建议先执行termux-setup-storage命令,以获得对设备外部存储的基本访问权限,这将方便后续的文件交换操作。

2. Alpine Linux的优势与选择理由

在众多Linux发行版中,Alpine以其极小的资源占用和高度安全性而著称。它使用musl libc而不是更常见的glibc,这使得它在资源受限的环境中表现尤为出色。对于运行在移动设备上的环境来说,这种轻量级特性显得尤为重要。

Alpine的包管理系统apk虽然与Debian系的apt有所不同,但其设计哲学强调简洁和效率。以下是一些常用的apk命令与apt的对比:

操作类型APT (Debian/Ubuntu)APK (Alpine)
更新包索引apt updateapk update
安装软件包apt install packageapk add package
删除软件包apt remove packageapk del package
搜索软件包apt search patternapk search pattern

选择Alpine的另一重要原因是其软件仓库中的预编译包质量。许多Python包,如cryptography,在Alpine中都有预编译版本,这避免了在资源受限环境中进行长时间编译的需要。对于Home Assistant这类依赖复杂的应用来说,这大大简化了部署过程。

在实际部署中,Alpine的另一个优势是其安全模型。默认情况下,Alpine使用非Root用户运行服务,这正好符合我们在无Root环境下的安全需求。虽然我们在PRoot环境中模拟了Root权限,但实际进程仍然运行在普通用户空间,这种双重保护机制提高了系统的安全性。

3. 环境配置与系统优化

在Termux中配置Alpine环境时,有几个关键点需要特别注意。首先是存储空间的规划,Android设备通常有有限的内部存储,而Termux默认只能访问其私有目录。我们需要合理配置存储,避免因空间不足导致安装失败。

# 在Alpine环境中配置交换文件(如果需要)
dd if=/dev/zero of=/swapfile bs=1M count=512
chmod 0600 /swapfile
mkswap /swapfile
swapon /swapfile

网络配置是另一个需要关注的领域。在移动设备上,网络环境可能经常变化,我们需要确保服务能够适应这种变化。特别是对于Home Assistant这类需要持续网络连接的服务,合理的超时和重试机制至关重要。

以下是一些建议的系统优化参数,可以添加到Alpine的/etc/sysctl.conf中:

# 提高网络性能
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_keepalive_time=300
net.ipv4.tcp_keepalive_intvl=60
net.ipv4.tcp_keepalive_probes=5

# 优化内存使用
vm.swappiness=10
vm.vfs_cache_pressure=50

对于需要长时间运行的服务,我们还需要考虑电源管理的影响。Android设备在屏幕关闭后可能会限制后台进程的活动,这可以通过Termux的唤醒锁定功能来缓解:

# 在Termux中安装termux-api包来管理唤醒锁定
pkg install termux-api
termux-wake-lock

注意:长期保持唤醒锁定会显著增加电池消耗,建议仅在必要时使用,并确保设备连接电源。

4. Home Assistant的部署与调优

在Alpine环境中部署Home Assistant时,我们选择了直接安装而非Docker方式,这主要是由于在PRoot环境下,Docker无法正常工作的限制。直接安装虽然需要更多的手动配置,但提供了更好的可控性和性能。

安装过程中的关键步骤包括Python虚拟环境的创建和必要的系统依赖安装:

# 创建专用的虚拟环境
python3 -m venv /opt/homeassistant

# 激活虚拟环境
source /opt/homeassistant/bin/activate

# 安装核心依赖
apk add python3 python3-dev py3-pip gcc musl-dev jpeg-dev zlib-dev

一个常见的挑战是网络接口权限问题。在无Root环境下,Home Assistant无法直接枚举网络接口,这会导致启动失败。我们通过修改ifaddr库的源代码来绕过这一限制:

# 修改 /opt/homeassistant/lib/python3.*/site-packages/ifaddr/_posix.py
# 将get_adapters()函数替换为以下内容:
def get_adapters():
    return []  # 直接返回空列表,跳过权限检查

这种修改虽然解决了启动问题,但也意味着Home Assistant无法自动发现网络设备。对于大多数使用场景,这可以通过手动配置来弥补。

为了优化Home Assistant在移动设备上的性能,我们可以调整一些配置参数:

# configuration.yaml 中的性能优化设置
default_config:

frontend:
  themes: !include_dir_merge_named themes

# 减少历史数据保留天数
recorder:
  purge_keep_days: 3

# 禁用不必要的集成
discovery:
  ignore:
    - sonos
    - samsung_tv
    - roku

日志管理也是需要特别关注的一点。在资源受限的环境中,过多的日志输出不仅会占用存储空间,还会影响性能。建议将日志级别设置为warning或error,除非正在进行故障排除。

5. 持久化与自动化维护

确保服务在设备重启后能够自动恢复是实际应用中的关键需求。在Termux和Alpine的组合中,我们需要设计一套启动机制来处理这一需求。

首先在Termux中创建启动脚本:

#!/data/data/com.termux/files/usr/bin/bash
# termux_start.sh

# 启动ssh服务(可选)
sshd

# 登录Alpine并启动服务
proot-distro login alpine -- /opt/scripts/start_ha.sh

然后在Alpine环境中创建相应的服务启动脚本:

#!/bin/sh
# /opt/scripts/start_ha.sh

# 等待网络就绪
while ! ping -c 1 -W 1 8.8.8.8; do
    sleep 1
done

# 激活虚拟环境并启动Home Assistant
source /opt/homeassistant/bin/activate
python3 -m homeassistant --config /root/.homeassistant

为了实现真正的自动化,我们还需要确保Termux在设备启动时自动运行。这可以通过Android的快捷方式工具或Tasker等自动化应用来实现。需要注意的是,不同Android版本对后台服务的限制有所不同,可能需要针对特定设备进行调试。

定期维护是保证长期稳定运行的关键。我们可以设置定时任务来执行清理和备份操作:

# 在Alpine中设置cron任务
# 每天凌晨3点执行清理
0 3 * * * /opt/scripts/cleanup.sh

# 每周日凌晨2点执行完整备份
0 2 * * 0 /opt/scripts/backup.sh

备份脚本应该包括Home Assistant的配置文件和数据库:

#!/bin/sh
# backup.sh

TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/sdcard/HA_Backups

tar -czf $BACKUP_DIR/ha_backup_$TIMESTAMP.tar.gz \
    -C /root/.homeassistant .

重要提示:定期检查存储空间使用情况,避免因日志或备份文件积累导致磁盘空间不足。

6. 故障排除与性能监控

即使在精心配置后,在受限环境中运行服务仍可能遇到各种问题。建立有效的监控和故障排除流程至关重要。

首先建议安装基本的系统监控工具:

# 在Alpine中安装监控工具
apk add htop iftop iotop

# 在Termux中安装基本工具
pkg install termux-api termux-tools

对于Home Assistant的特定监控,我们可以使用其内置的系统监控集成:

# configuration.yaml 中的系统监控设置
sensor:
  - platform: systemmonitor
    resources:
      - type: disk_use_percent
        arg: /
      - type: memory_free
      - type: processor_use

当遇到服务异常时,系统的排查流程如下:

  1. 检查资源使用情况:使用htop查看CPU和内存使用
  2. 验证网络连接:使用ping和curl测试网络连通性
  3. 检查日志信息:查看Home Assistant日志中的错误信息
  4. 验证服务状态:确认所有依赖服务正常运行

常见的性能瓶颈和解决方案:

  • 内存不足:添加交换文件,优化Home Assistant配置
  • CPU过载:减少自动化复杂度,调整扫描间隔
  • 存储IO瓶颈:使用高速存储卡,减少日志输出
  • 网络延迟:优化WiFi连接,使用有线网络适配器

为了提前发现问题,可以设置基于阈值的警报:

#!/bin/sh
# monitor.sh

MEM_THRESHOLD=90
CPU_THRESHOLD=80

MEM_USE=$(free | awk '/Mem/ {printf("%d"), $3/$2*100}')
CPU_USE=$(top -bn1 | awk '/Cpu/ {print $2}')

if [ $MEM_USE -gt $MEM_THRESHOLD ]; then
    termux-notification -t "内存警告" -c "内存使用率: $MEM_USE%"
fi

if [ ${CPU_USE%.*} -gt $CPU_THRESHOLD ]; then
    termux-notification -t "CPU警告" -c "CPU使用率: $CPU_USE%"
fi

在实际使用中,我发现最实用的性能优化往往是减少不必要的集成和自动化。每个额外的集成都会增加系统负载,在资源受限的环境中,这种影响更加明显。定期审查和精简配置是保持系统稳定运行的关键。

7. 安全考虑与最佳实践

在移动设备上运行服务时,安全往往是被忽视的方面。然而,正因为这些设备可能连接家庭网络,安全问题显得尤为重要。

首先确保Termux和Alpine环境的基本安全:

# 定期更新系统包
pkg update && pkg upgrade  # Termux
apk update && apk upgrade  # Alpine

# 更改默认的SSH端口(如果使用)
# 在Termux的sshd_config中修改Port
echo "Port 2222" >> ~/../usr/etc/ssh/sshd_config

对于Home Assistant,建议采取以下安全措施:

  • 使用强密码:避免使用默认密码
  • 启用SSL加密:使用Let's Encrypt证书或自签名证书
  • 限制网络暴露:仅在内网访问,或通过VPN访问
  • 定期备份配置:确保灾难恢复能力

网络隔离是另一个重要考虑。如果设备同时用于日常使用和服务托管,建议使用Android的VPN功能或网络隔离应用来分离流量。

在隐私方面,需要注意Home Assistant可能收集的设备信息和 usage statistics。可以根据需要禁用数据收集功能:

# configuration.yaml 中的隐私设置
default_config:

telemetry:
  disable: true

# 禁用所有数据收集
analytics:
  disable: true

最后,建立定期安全检查的习惯非常重要。包括检查日志中的异常登录尝试、验证证书有效期、更新已知漏洞的软件包等。在移动设备上运行服务虽然方便,但绝不能以牺牲安全为代价。

通过数周的实际运行测试,这种方案确实能够提供相当稳定的服务环境。电池消耗在合理范围内,性能足以支持中等复杂度的智能家居系统。最大的挑战反而是Android系统的自身限制,特别是内存管理和后台活动限制。通过合理的配置和优化,这些挑战大多可以得到缓解。

无需Root!Termux+Alpine打造轻量级HomeAssistant服务器——避坑与优化指南 本文详细介绍了如何在无需Root权限的安卓设备上,通过Termux和Alpine Linux轻量级部署HomeAssistant服务器。提供了从环境配置、依赖安装到权限优化的完整避坑指南,帮助用户利用闲置旧手机低成本搭建智能家居控制中心,实现高效稳定的HomeAssistant运行环境。 阅读详情

相关推荐

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

TCP包头含义详解

原文转载:https://blog.youkuaiyun.com/u014800094/article/details/95855202 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流...

weixin_44816919的博客 2862

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

TCP 包头详解

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。之后TCP把数据包传给IP层,由它来通过网络将包传送给接收端实体的TCP...

weixin_34380296的博客 1588

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

安卓端免root免内核编译运行容器&udocker基本使用教程【nethunter】【termux】【docker替代方案】【udocker】

​​​​​​1.前言 这是我写的第一篇文章也是国内目前唯一一篇完整的udocker安装,使用和绕坑教程~如有一些地方写得不好还望社区中的各位大佬小白体谅~下面就由汤圆我来给大家介绍Udocker..... 2.简介 Udocker: 一个基本的用户工具,可以在批处理或交互式系统中执行简单的docker容器,而无需root权限和docker,具有依赖少,本地文件,无需root的特点 3.安装 3.1安装依赖 -python3/python2 -pycurl/curl -hashlib/opens

TangYuanMaster's Blog 8022

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Wireshark学习思路-1

最近也在学习歪尔沙克,因为应急响应我发现光是看文章没有实操是没啥用的,所以也放弃了重复的看,而想起了牛皮克拉斯的歪尔沙克。 由于是看着人家unit42 《Wireshark Tutorial》进行学习的,所以这里仅做一个分享,类型为转载类型。 侵删侵删哈,目的是分享给更多像我一样在学习歪尔沙克但是缺乏具体思路的菜鸟 歪尔沙克默认的显示方式 歪尔沙克作用有很多,常用场景为应急响应中的数据包流量分析,他能直观的看到数据的传输过程,包括各种http/https、tcp/ip、ftp、ssh等等协议通通支持.

weixin_48421613的博客 1580

单相PWM整流器的数学模型、工作原理

单相PWM整流器的数学模型、工作原理

weixin_58670090的博客 1万+

android11-修改屏幕显示方向和触摸方向

参数0表示12点钟方向显示参数90表示3点钟方向显示参数180表示6点钟方向显示参数270表示9点钟方向显示。

Paper_Love的博客 2118

TermuxAlpine 安装和配置指南

TermuxAlpine 安装和配置指南 1. 项目基础介绍和主要编程语言 TermuxAlpine 是一个在 Android 设备上通过 Termux 安装和运行 Alpine Linux 的脚本项目。该项目的主要目的是简化在 Android 设备上安装和配置 Alpine Linux 的过程,使得用户可以在移动设备上体验到轻量级的 Linux 环境。 该项目的主要编程语言是 Shell 脚本。...

gitblog_01256的博客 1412

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 333

揭秘Docker容器安全隐患:如何通过非root用户提升安全性?

提升Docker容器安全性,掌握非root用户运行最佳实践。通过创建专用用户、设置合理权限及使用多阶段构建,有效降低安全风险,适用于生产环境部署。揭秘Docker镜像的非root用户运行最佳实践,值得收藏。

StepNexus的博客 861

【强化学习】强化学习中,训练过程的稳定性是什么?该如何进行衡量?请详细进行解释

在强化学习中,训练过程的稳定性指的是算法在训练过程中表现出一致的行为,并且能够稳定地收敛到一个好的策略。收敛性:算法是否能够在有限的时间内收敛到一个近似最优的策略。鲁棒性:算法在不同的初始条件或环境扰动下的表现是否稳定。方差:算法在多次运行中表现出的变异程度。稳定的训练过程意味着算法的训练曲线平滑奖励信号变化小,且策略或价值函数的变化是渐进的。

wq6qeg88的博客 1629

三维重建之条纹投影结构光(一)

该系列为条纹投影结构光学习笔记,一共分为四篇。第一篇记录文献阅读的笔记,对重要知识点进行摘录介绍。 本篇以理论知识推导为主,主要从以下三个方面进行介绍,首先介绍条纹投影的三角测量原理;然后介绍相位主值的求解和相位展开;最后介绍相位和高度的模型,即相高模型。本篇博文不涉及具体的代码实现。 条纹投影结构光测量原理 ...

beyond951的博客 3万+

安卓免ROOT(安卓免ROOT密友)

以下是关于安卓免Root的详细解释: 定义与背景 Root权限是Android系统的一种高级权限,允许用户以超级管理员的身份操作手机,执行一些需要高级权限的任务。其中,kingroot是一款值得推荐的软件,它能够智能判断手机情况,提供最适合的解决方案,从而大大提升获取ROOT权限的成功率。进入设置:在录屏大师的主界面中,找到并点击右上方的“设置”按钮。2、有的按键精灵安卓版可以无需root就使用,你只需下载游戏蜂窝,如果该脚本作者已申请免root权限,那么它就会出现在免root的列表中,你可以直接使用。

weixin_44884047的博客 2153

告别代码丢失!用Git+Gitee管理你的Keil5单片机项目(保姆级图文教程)

本文详细介绍了如何利用Git和Gitee高效管理Keil5单片机项目,解决嵌入式开发中的代码丢失问题。通过精准配置.gitignore文件、设计适合团队的协作流程以及搭建安全备份体系,开发者可以轻松实现版本控制,提升工作效率。特别针对Keil工程的特殊文件类型,提供了实用的过滤规则和操作技巧。

weixin_33686714的博客 470

【免费下载】 安卓手机免Root运行青龙面板:一站式教程

安卓手机免Root运行青龙面板:一站式教程 【下载地址】安卓手机免root本地运行青龙面板教程 安卓手机免root本地运行青龙面板教程本资源文件提供了一个详细的教程,指导如何在无root权限的安卓设备上通过Termux高级终端ZeroTermux运行青龙面板 ...

gitblog_06511的博客 2923

【DSP】【工程实战】从零构建C6678多核工程:CCS环境配置与启动模式详解

本文详细介绍了在CCS开发环境中从零构建TMS320C6678多核DSP工程的完整流程。内容涵盖KeyStone架构解析、工程创建、基础代码编写、链接命令文件配置、仿真器调试,并重点深入讲解了包括I2C EEPROM在内的多种一级启动模式原理与配置方法,为开发者提供了一套清晰、可复用的实战指南。

weixin_29164185的博客 419

全新DEIM有效涨点改进目录 | 本专栏持续更新500+篇内容 | 包含各种顶会顶刊卷积、注意力、特征融合模块、有效特征聚合提取模块,上采样模块、下采样模块,二次创新模块、独家创新等几百种创新点改进

🚀【CVPR2025DEIM改进专栏速览】🔥 专栏提供500+篇目标检测创新改进方案,涵盖卷积/注意力/特征融合等创新改进点,均源自顶会论文及实战经验。支持多领域应用(工业/医疗/遥感等),配套完整教程和答疑服务。亮点包括: 1️⃣ 持续更新SOTA模型改进方案 2️⃣ 小白友好型实验操作指南 3️⃣ 跨学科科研支持(已助非计算机专业发表论文) 4️⃣ 提供虚拟环境配置方案。 订阅可获完整项目代码及交流群服务,适合研究生科研论文改进需求。价格呈上涨趋势,早订更优惠!

Ai缝合怪、助力小伙伴高效发论文 2050

如何免ROOT运行Xposed模块?VirtualXposed虚拟环境全攻略

想在不修改手机系统的情况下使用Xposed模块?VirtualXposed让这一切成为可能!这款开源工具通过创建独立的虚拟环境,让你无需ROOT权限、无需解锁Bootloader,就能安全运行各类Xposed模块。本文将带你从零开始搭建属于自己的虚拟模块运行环境,轻松玩转Android功能扩展。 ## 一、项目概述:认识VirtualXposed ### 1.1 什么是VirtualXpose

gitblog_00699的博客 920

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

python解析pcap提取{src ip,src port,protocol,dst ip, dst port}五元组,再提取网络流(包括前向流与后向流)

通过解析pcap文件,按照{src ip, src port, transport protocol , dst ip, dst port} 拆分流,并提取出前向流(Forward)与后向流(Backward),代码如下: import pyshark import pandas as pd class Net_flow(object): def __init__(self, file_path): self.cap = pyshark.FileCapture(file_path

呆萌的代Ma 9209

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

tshark解析本地pcap数据包提取五元组{src_ip,src_port,proto,dst_ip,dst_port}与时间戳,包长

tshark官方文档:https://www.wireshark.org/docs/man-pages/tshark.html wireshark官方特征参考:https://www.wireshark.org/docs/dfref/ 前提需要安装wireshark 提取五元组{src_ip,src_port,proto,dst_ip,dst_port} 代码如下: tshark -r pcap文件 -T fields -e ip.src -e tcp.srcport -e ip.dst -e tcp.

呆萌的代Ma 4734

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

src-nat参数说明、回流原理

src-nat定义与作用 src-nat是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址。 snat中几个参数的含义 action 这是说明用的哪种转换方式,通常我们用masqurade,nat这两种,在特殊情况下用accept(主要是内网中有公网地址存在的情况)方法 参数 说明 protocol 说明对哪些传输协进行转换(通常有tcp,udp等)

大头爸爸的博客 1万+

PCC中选择both-addresses与 src address and port 的区别

PCC是基于hash,然后求余的操作 Hash的特点是对相同的输入值,hash之后的数值绝对是相同的 both-address 和 src-address and port 都是输入值 前者是以源地址和目的地址作为输入值,后者是以源地址和源端口为输入值 也就是对前者来说,如果数据包的源地址和目的地址相同,将得到相同的hash值,根据后续的PCC规则,这些数据包将被分配到同一条外网链接上。 该操作的...

lan6010的博客 2699
上一篇: ADC数据流的隐形守护者:DMA在多通道采样中的救赎之旅
下一篇: HAL库背后的设计哲学:为什么现代嵌入式竞赛更青睐抽象化编程
普通网友
博客等级 码龄27年 204粉丝 1502原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值