当前位置: 首页 > article >正文

coreelec与安卓 双系统共存-默认CoreElec引导后10秒计时进入android插件

在把coreelec写入emmc后,默认打开coreelec,然后通过电源可以重启进入安卓。需要多点好多步骤,下面我通过自己制作的插件来实现开机倒计时默认进入安卓

  1. 首先需要打开设置服务里的允许本地控制,并且重启生效,
  2. 编写自动启动脚本 storage/.config/autostart.sh
    chmod +x autostart.sh
#!/bin/sh
(
    sleep 20  # 等待 Kodi 启动完成,可以根据需要调整等待时间
     
    /usr/bin/kodi-send --action="RunAddon(script.countdown)"
) &

  1. 制作插件在/storage/.kodi/建立新文件夹 script.countdown,并且放入两个文件
    addon.xml
<?xml version="1.0" encoding="UTF-8"?>
<addon id="script.countdown" name="Countdown" version="1.0.0" provider-name="Your Name">
    <extension point="xbmc.python.script" library="main.py">
        <provides>navigatescript</provides>
    </extension>
</addon>

main.py

import xbmcgui
import xbmc
import time
import subprocess
import threading
class CountdownThread(threading.Thread):
    def __init__(self, duration):
        super(CountdownThread, self).__init__()
        self.duration = duration
        self._stop_event = threading.Event()

    def run(self):
        for remaining in range(self.duration, 0, -1):
            if self.stopped():
                break
            self.show_notification(remaining)
            time.sleep(1)
        if not self.stopped():
            self.show_notification(0)
            restart_device()

    def stop(self):
        self._stop_event.set()

    def stopped(self):
        return self._stop_event.is_set()

    def show_notification(self, remaining):
        xbmcgui.Dialog().notification("重启安卓倒计时", f"剩余时间:{remaining} 秒")
def start_timer(duration):
    countdown_thread = CountdownThread(duration)
    countdown_thread.start()
    return countdown_thread

def stop_timer(countdown_thread):
    countdown_thread.stop()

# 执行外部命令的函数
def run_external_command(command):
    process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = process.communicate()
    return output.decode(), error.decode()
   
 
def restart_device():
    run_external_command("rebootfromnand")
    run_external_command("reboot -f")
    
    
 
if __name__ == '__main__':
        dialog = xbmcgui.Dialog()
        timer = start_timer(10)
        #dialog.ok("计时器", "计时已开始")
        dialog.yesno("计时器", "要停止计时吗?")
        stop_timer(timer)
  1. 重启打开插件,查看和激活启用countdown。可以运行一下看下效果。

四步都完成了就可以了,在coreElec 20.2-Nexus的X96 MAX+测试通过。应该问题不大。

插件测试挺顺利,ssh直接用MobaXterm_Personal_23.0 访问开了ssh的kodi,
后面开机指令的发送出了点问题,因为第一步本地服务里的本地控制没有打开,造成kodi-send始终不执行。所以四步完成,一个方便一点的双系统就成了。

整个过程的chat-gpt的提示下完成,后来google也没帮太大忙。运气
下载地址 http://pan.ezdial.cn/nasone/tvbox/script.countdown.zip


http://www.kler.cn/a/146202.html

相关文章:

  • Spring Security(maven项目) 3.0.2.5版本中改
  • 第22篇 基于ARM A9处理器用汇编语言实现中断<四>
  • 【SPIE出版|EI、Scopus双检索】2025年绿色能源与环境系统国际学术会议(GEES 2025)
  • 【JVM中的三色标记法是什么?】
  • 阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI
  • 《贪心算法:原理剖析与典型例题精解》
  • Java游戏制作——王者荣耀
  • 【React】Memo
  • 【活动回顾】ABeam 德硕| 艾宾信息技术开发(西安)西北高校行——与西北三所高校签订校企合作协议
  • python opencv -模板匹配
  • IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket
  • python类和对象
  • Rust语言入门教程(九) - 结构体
  • 交流回馈负载的主要工作方式
  • laravel实现发送邮件功能
  • Python语言学习笔记之三(字符编码)
  • 基于C#实现块状链表
  • 制造业工厂如何选择生产管理MES系统?
  • iOS移动应用程序的备案与SHA-1值查看
  • 【部署运维】docker:入门到进阶
  • 基于AC6969的蓝牙控制RGB彩灯
  • Java中的jvm——面试题+答案(JVM的一些高级概念、调优技巧、垃圾回收算法等)——第13期
  • Redis-Redis多级缓存架构
  • The Matrix format of Least Square Method (LMS)
  • 实验五 键盘按键与数码管显示(汇编与微机原理)
  • 17 Go的文件操作