Android 13 动态启用或禁用IPV6

这篇具有很好参考价值的文章主要介绍了Android 13 动态启用或禁用IPV6。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

客户想要通过APK来控制IPV6的启用和禁用,这里我们通过广播的方式来让客户控制IPV6。

效果展示

adb shell

ifconfig

android usb网卡 禁用ipv6,Android 13,android

这里我们用debug软件,将下面节点置为1 如图ipv6已被禁用了 

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6

android usb网卡 禁用ipv6,Android 13,android

修改

接下来我们通过代码控制,动态注册广播

custom.action.intent.ipv6.on   //禁用ipv6

custom.action.intent.ipv6.off   //启用ipv6

路径:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

//*/soda water.20232328.ipv6 switch
import java.io.BufferedWriter;
import java.io.FileWriter;
//*/


    //我们在 init 中动态注册广播
    public void init(Context context, IWindowManager windowManager,
            WindowManagerFuncs windowManagerFuncs) {

        //*/soda water.20232327.ipv6 switch
        filter = new IntentFilter();
        filter.addAction("custom.action.intent.ipv6.on");
        filter.addAction("custom.action.intent.ipv6.off");
        context.registerReceiver(Ipv6Receiver, filter);
        //*/

    }



    //此处我们监听广播 这里定义广播
    //*/soda water.20232327.ipv6 switch
    BroadcastReceiver Ipv6Receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if ("custom.action.intent.ipv6.on".equals(intent.getAction())) {
            setIpv6(true);
            Log.d("soda water","on");
            }else if ("custom.action.intent.ipv6.off".equals(intent.getAction())){
            setIpv6(false);
            Log.d("soda water","off");
            }
        }
    };

    private static void setIpv6(Boolean commod) {
        BufferedWriter bufWriter;
        try {
            bufWriter = new BufferedWriter(new FileWriter("/proc/sys/net/ipv6/conf/all/disable_ipv6"));
            Log.d("soda water","one");
            bufWriter.write(commod?"1":"0");
            Log.d("soda water","two");
            bufWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //*/

接下来我们尝试用apk发送广播

public class MainActivity extends AppCompatActivity {
    private ToggleButton tg_button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tg_button = findViewById(R.id.bt_switch);
        tg_button.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                Intent intent = new Intent();
                if (b) {
                    intent.setAction("custom.action.intent.ipv6.on");
                    sendBroadcast(intent);
                } else {
                    intent.setAction("custom.action.intent.ipv6.off");
                    sendBroadcast(intent);
                }
            }
        });

    }
}

验证发现缺少avc写入的权限

adb shell

logcat | grep avc

12-26 19:52:25.616  1310  1310 W system_server: type=1400 audit(0.0:193): avc: denied { write } for name="disable_ipv6" dev="proc" ino=27000 scontext=
u:r:system_server:s0 tcontext=u:object_r:proc_net:s0 tclass=file permissive=0

上面显示 proc_net 在 system_server 中没有 write 权限

在如下路径补上如下代码 此时在此发送广播发现可以动态控制ipv6的启用和禁用了

路径:system/sepolicy/private/system_server.te文章来源地址https://www.toymoban.com/news/detail-808572.html

allow system_server proc_net:file {open write getattr};

到了这里,关于Android 13 动态启用或禁用IPV6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker容器启用ipv6地址方法,用ipv6地址访问容器方法流程、创建一个nginx容器用ipv6地址访问测试流程

    你如果没用使用Docker-Compose,就忽略配置,以了解为主,直接去看下面的docker配置。 docker-compose.yaml 文件必须使用 version: “2.*” , version: “3.*” 不支持 enable_ipv6 配置 如果已有旧的容器在运行(网络配置发生了变化),则需要先销毁容器 docker-compose down 然后再重新创建 doc

    2024年02月02日
    浏览(57)
  • 统信UOS操作系统上禁用IPv6

    原文链接:统信UOS操作系统上禁用IPv6 hello,大家好啊!继之前我们讨论了如何在麒麟KYLINOS上禁用IPv6之后,今天我要给大家带来的是在统信UOS操作系统上禁用IPv6的方法。IPv6是最新的网络通信协议,但在某些特定的网络环境或测试场景中,可能需要禁用IPv6以确保兼容性或满足

    2024年01月17日
    浏览(54)
  • linux ipv6动态解析,家庭宽带ipv6搭建外网访问方案,ddns动态解析ipv6,ipv6建站等

    注意:ipv6和ipv4之间不可互相访问!!! 如题: 1、先确认我们本地是否有公网ipv6地址 Windows查看方法:打开cmd、输入ipconfig 看到有2开头的就是公网ipv6了 linux下输入ifconfig即可 再或者通过ipv6test查看,浏览器打开Test your IPv6.即可  如图即可知道自己是否获取到ipv6 2、如果没有

    2024年02月06日
    浏览(55)
  • IPv6路由协议---IPv6动态路由(OSPFv3-4)

    链路状态通告是OSPFv3进行路由计算的关键依据,链路状态通告包含链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。 OSPFv3的LSA头仍然保持20字节,但是内容变化了。在LSA头中,OSPFv2的LS age、Advertising Router、LS Sequence Number、LS Checksum和Length字段都没有变化,但

    2024年01月25日
    浏览(59)
  • 中兴R5300 G4服务器iSAC管理员zteroot密码遗失的重置方法及IPV6地址启用设置

    本文讲解中兴R5300 G4服务器BMC带外iSAC管理员zteroot密码遗失,无法登录时如何对其进行密码重置,以及iSAC启用IPV6地址的方法。 一、重置中兴R5300 G4服务器iSAC管理员zteroot密码 1、通过SSH登录到iSAC,默认用户名:sysadmin,密码:superuser,如有修改,请输入修改后的密码 2、确认主

    2024年02月03日
    浏览(80)
  • OpenWrt路由器设置IPv6域名动态解析,同时实现IPv4设备访问IPv6节点

    前不久刚写了一篇《OpenWrt路由器设置域名动态解析手把手教程》,对ipv4动态解析有了基本的认识。但随着ipv4地址的匮乏,很多地方已经不提供公网的动态ip了,只有ipv6公网地址可以访问了。于是想在上一篇博文的基础上补充ipv6的设置,并增加ipv4设备访问ipv6地址的解析方法

    2024年02月08日
    浏览(57)
  • DDNS动态域名解析IPv6地址

    通过公网IPv6地址实现远程访问专栏系列文章: 《使用公网IPv6远程访问内网设备》 《DDNS动态域名解析IPv6地址》 付费提示! 由于本文教程中需要使用域名和域名解析服务,因此存在付费内容。域名可自行在阿里云、腾讯云、华为云等云服务提供商进行购买,域名解析服务则

    2024年02月10日
    浏览(56)
  • 用docker阿里云域名动态解析IPV6和IPV4地址

    现在通信运营商一般不会再单独分配动态公网ipv4地址,ipv6地址的启用给我们带来了希望,现在给大家介绍用docker方式动态解析IPV6地址。 准备工作: 1、树莓派、台式机或者软路由都可以; 2、光猫开启ipv6功能,在这里不再赘述; 3、在电脑安装docker; 4、在阿里云网站上购买

    2024年02月02日
    浏览(48)
  • Android 12.0 禁用和启用拨打电话功能实现

     在12.0的产品定制化开发中,在一些wifi产品的产品开发中,对于系统4g部分的功能需要裁剪 比如拨打电话 接听电话 短信功能等这部分 需要禁用系统对应的功能,接下来就来初步分析下系统中拨打电话部分功能,然后实现禁用拨打电话功能 在系统中TelecomManager 主要是提供有

    2024年02月09日
    浏览(35)
  • 【软考网络管理员】2023年软考网管初级常见知识考点(13)-ARP、ICMP、IPv6协议详解

    #涉及知识点 ARP协议详解、ICMP协议详解、IPv6协议等软考内容详解 软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码》,更多考点汇总可以去他主页查看 更多考试总结可关注CSDN博主-《拄杖盲学轻声码》 在网络

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包