禁止某个app联网

本文涉及的产品
云防火墙,500元 1000GB
简介: 禁止某个app联网
//作者: 家  QQ203118908
//本来打算用iptables-restore用文件形式更新防火墙规则,
//可是iptables-restore出现了bug,2013年就有人提过这个bug
//https://linux.debian.bugs.dist.narkive.com/J0hbJiR6/bug-710379-xtables-addons-common-quota2-module-iptables-save-creates-invalid-record
//又得改,坑爹
//马丹,iptables -D INPUT -lineNumber也有BUG,
//提示 index of deletion too big
//日了够了
//又得改,坑爹
// sudo iptables -D OUTPUT 1 -t nat
//
// uid=`cat /data/system/packages.list | grep com.sohu.inputmethod.sogou | busybox awk '{print $2}'`
// iptables -t filter -A OUTPUT -m owner --uid-owner=$uid -j DROP
// 以上是android iptables 屏蔽某个app网络访问的内容,
function 联网控制(appName) {
  // -A OUTPUT -m owner --uid-owner 10105 -j ACCEPT
  // -A OUTPUT -m owner --uid-owner 10105 -j DROP
  this.等待shell执行完毕的时间 = 0
  this.防火墙规则路径 = '/sdcard/iptables.txt'
  this.uid路径 = '/sdcard/' + appName + 'uidOwner.txt'
  this.appName = appName
  this.packageName = getPackageName(this.appName)
  this.执行shell = (cmd) => {
    var result = shell(cmd, true);
    console.show();
    log(result);
    if (result.code == 0) {
      toastLog("执行成功");
    } else {
      toastLog("执行失败!请到控制台查看错误信息");
    }
    sleep(this.等待shell执行完毕的时间)
  }
  this.uid = () => {
    var cmd = 'cat /data/system/packages.list | grep ' + this.packageName + ' > ' + this.uid路径
    log('cmd=', cmd)
    this.执行shell(cmd)
    // cat /data/system/packages.list | grep com.tencent.mobileqq > /sdcard/QQuidOwner.txt
    var 包含uid的文本 = files.read('/sdcard/' + appName + 'uidOwner.txt')
    log('包含uid的文本=', 包含uid的文本)
    var uidReg = new RegExp(this.packageName + '\\s*(\\d+)')
    log('uidReg=', uidReg)
    var uid = 包含uid的文本.match(uidReg)[1]
    log(uid)
    return uid
  }
  this.允许联网规则 = 'iptables -t filter -A OUTPUT -m owner --uid-owner ' + this.uid() + ' -j ACCEPT'
  this.禁止联网规则 = 'iptables -t filter -A OUTPUT -m owner --uid-owner ' + this.uid() + ' -j DROP'
  this.允许 = () => {
    this.清空该app的防火墙规则()
    this.将防火墙规则写入系统(this.允许联网规则)
  }
  this.禁止 = () => {
    this.清空该app的防火墙规则()
    this.将防火墙规则写入系统(this.禁止联网规则)
  }
  this.将防火墙规则写入系统 = (防火墙规则) => {
    var cmd = 防火墙规则
    this.执行shell(cmd)
  }
  this.导出防火墙规则 = () => {
    var cmd = 'iptables-save > ' + this.防火墙规则路径
    this.执行shell(cmd)
  }
  this.防火墙规则 = () => {
    this.导出防火墙规则()
    var 防火墙规则 = files.read(this.防火墙规则路径)
    log('防火墙规则=', 防火墙规则)
    return 防火墙规则
  }
  this.清空该app的防火墙规则 = () => {
    var 防火墙规则 = this.防火墙规则()
    // stringObject.replace(regexp/substr,replacement)
    // -A OUTPUT -m owner --uid-owner 10105 -j ACCEPT
    // -A OUTPUT -m owner --uid-owner 10105 -j ACCEPT
    // -A OUTPUT -m owner --uid-owner 10105 -j DROP
    // -A OUTPUT -m owner --uid-owner 10105 -j ACCEPT
    // -A OUTPUT -m owner --uid-owner 10105 -j ACCEPT
    // 删除之前添加的规则(iptables -A INPUT -s 192.168.1.5 -j DROP):
    // [root@test ~]# iptables -D INPUT -s 192.168.1.5 -j DROP
    // iptables -t filter -A OUTPUT -m owner --uid-owner=$uid -j DROP
    var 要删除的规则reg = new RegExp('-A (OUT|IN)PUT -m owner --uid-owner ' + this.uid() + ' -j (ACCEPT|DROP)', 'g')
    // 要删除的规则reg= /-A OUTPUT -m owner --uid-owner 10105 -j (ACCEPT|DROP)/
    // -A OUTPUT -m owner --uid-owner 10105 -j (ACCEPT|DROP)
    // iptables -D OUTPUT -m owner --uid-owner 10105 -j ACCEPT
    log('要删除的规则reg=', 要删除的规则reg)
    var new防火墙规则 = 防火墙规则.match(要删除的规则reg, '')
    log('new防火墙规则=', new防火墙规则)
    // new防火墙规则= [
    //   '-A OUTPUT -m owner --uid-owner 10105 -j ACCEPT',
    //   '-A OUTPUT -m owner --uid-owner 10105 -j DROP'
    //               ]
    if(new防火墙规则){
      for (let i = 0; i < new防火墙规则.length; i++) {
        var 规则 = new防火墙规则[i]
        规则 = 规则.replace('-A', '-D')
        var cmd = 'iptables ' + 规则
        this.执行shell(cmd)
      }
    }
    log('清空了指定app的防火墙规则')
  }
}
// var appName = 'QQ'
// var appName = '哔哩哔哩'
var appName = '微信'
var app联网控制 = new 联网控制(appName)
// app联网控制.禁止()
app联网控制.允许()


声明

部分内容来自网络

相关文章
|
11天前
|
缓存 开发工具 开发者
鸿蒙NEXT开发App相关工具类(ArkTs)
这段代码展示了一个名为鸿蒙NEXT开发 `AppUtil` 的工具类,主要用于管理鸿蒙应用的上下文、窗口、状态栏、导航栏等配置。它提供了多种功能,例如设置灰阶模式、颜色模式、字体类型、屏幕亮度、窗口属性等,并支持获取应用包信息(如版本号、包名等)。该工具类需在 UIAbility 的 `onWindowStageCreate` 方法中初始化,以便缓存全局变量。代码由鸿蒙布道师编写,适用于鸿蒙系统应用开发,帮助开发者更便捷地管理和配置应用界面及系统属性。
|
12天前
|
人工智能 开发框架 小程序
工会成立100周年纪念,开发职工健身AI运动小程序、APP方案推荐
为庆祝中华全国总工会成立100周年,特推出基于AI技术的智能健身系统,以小程序和APP形式呈现,助力职工健康生活。方案包括:1) 小程序插件,支持多种运动识别,开箱即用;2) APP插件,提供更高精度的运动检测;3) 成熟的「AI乐运动」系统,支持赛事活动管理。这些方案满足不同需求,推动全民健身体验升级,彰显工会对职工健康的关怀。
|
15天前
|
人工智能 小程序 开发者
【一步步开发AI运动APP】六、运动计时计数能调用
本文章介绍了如何通过【一步步开发AI运动APP】系列博文,利用uniAPP插件开发高性能的AI运动应用。文中详细说明了创建运动分析器、进行运动分析、监听计数变化以及停止/重置分析等功能实现步骤。插件内置多种常见运动(如跳绳、俯卧撑等),支持自定义扩展,满足健身、体测等场景需求。示例代码展示了人体检测、运动计时计数及UI更新的完整流程,帮助开发者快速上手并深耕AI运动领域。
|
19天前
|
人工智能 小程序 API
【一步步开发AI运动APP】五、人体检测能力调用
本文介绍如何开发性能更强、体验更优的AI运动APP,涵盖人体检测、实例创建、检测识别、骨骼图绘制及完整代码实现。通过API `createHumanDetector`,可灵活配置高性能、高精度或多人检测模式,省去模型部署麻烦。检测结果可通过`yz-pose-grapher`组件高效渲染骨骼图。最后提醒使用完毕需调用`destroy()`释放资源,下篇将聚焦运动检测分析,敬请期待!
|
19天前
|
人工智能 小程序 API
【一步步开发AI运动APP】四、使用相机组件抽帧
本文介绍了如何使用`ai-camera`组件开发AI运动APP,助力开发者深耕AI运动领域。`ai-camera`是专为AI运动场景设计的相机组件,支持多平台,提供更强的抽帧处理能力和API。文章详细讲解了获取相机上下文、执行抽帧操作以及将帧保存到相册的功能实现,并附有代码示例。无论是AI运动APP还是其他场景,该组件都能满足预览、拍照、抽帧等需求。下篇将聚焦人体识别检测,敬请期待!
|
20天前
|
人工智能 开发框架 小程序
【一步步开发AI运动APP】二、跨平台APP AI运动识别方案介绍
本系列博文旨在帮助开发者从【AI运动小程序】迈向性能更优的【AI运动APP】开发。通过「云智AI运动识别」uni-app版插件,提供本地原生极速识别、精准姿态检测及运动计时计数功能,支持健身系统、线上赛事、学生体测、康复锻炼等多场景应用。插件无需云端依赖,一次付费永久使用,成本低且扩展性强。同时兼容uni-app与uni-app x框架,适合不同技术背景的开发者快速上手,助力抢占AI辅助运动市场。下篇将介绍插件引入,敬请期待!
|
21天前
|
人工智能 小程序 前端开发
【一步步开发AI运动APP】一、写在最前
本文介绍新系列【一步步开发AI运动APP】,旨在帮助开发者突破小程序限制,打造性能更强、体验更佳的AI运动APP。相比小程序,APP可充分利用CPU/GPU算力,实现高精度人体检测、多人检测等复杂功能。本系列基于跨平台框架`uni`及扩展插件`uni AI运动识别插件`,适合有小程序开发经验的开发者。内容涵盖抽帧、人体识别、运动分析、姿态交互等,逐步进阶实现完整AI运动APP,并支持多手机平台发布。
|
26天前
|
Web App开发 编解码 算法
布谷一对一直播源码开发:阿里云视频语音通话社交交友App的必备功能
在当今移动社交领域,一对一视频和语音通话功能已成为用户期待的基础配置。从熟人社交到陌生人交友,从专业咨询到情感陪伴,实时音视频互动能力直接决定了社交App的用户留存和市场竞争力。山东布谷科技将深入探讨一对一直播源码开发高质量一对一视频和语音通话功能的关键要素和技术实现方案。
布谷一对一直播源码开发:阿里云视频语音通话社交交友App的必备功能
|
1月前
|
安全 API Swift
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
110 15
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
|
1月前
|
搜索推荐 数据挖掘
直播App程序源码开发前期功能调研:运营角度思考如何有利于推广运营获利
在直播App程序源码开发的前期,功能调研至关重要。除了技术实现的可行性,更需要从运营角度出发,思考哪些功能能够助力推广运营,最终实现获利。山东布谷科技从运营角度,对直播App功能进行调研分析

热门文章

最新文章