导航菜单

页面标题

页面副标题

xDrip+ v04633772025.07.16 - FirmwareCapability.java 源代码

正在查看: xDrip+ v04633772025.07.16 应用的 FirmwareCapability.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.eveningoutpost.dexdrip.g5model;

import com.eveningoutpost.dexdrip.models.JoH;
import com.google.common.collect.ImmutableSet;

public class FirmwareCapability {
    private static final ImmutableSet<String> KNOWN_G5_FIRMWARES = ImmutableSet.of("1.0.0.13", "1.0.0.17", "1.0.4.10", "1.0.4.12", "1.0.4.14", "1.0.4.15", new String[0]);
    private static final ImmutableSet<String> KNOWN_G6_FIRMWARES = ImmutableSet.of("1.6.5.23", "1.6.5.25", "1.6.5.27");
    private static final ImmutableSet<String> KNOWN_G6_REV2_FIRMWARES = ImmutableSet.of("2.18.2.67", "2.18.2.88", "2.18.2.98", "2.24.2.88", "2.27.2.98", "2.27.2.103", "2.27.2.105");
    private static final ImmutableSet<String> KNOWN_G6_REV2_RAW_FIRMWARES = ImmutableSet.of("2.18.2.67");
    private static final ImmutableSet<String> KNOWN_G6_PLUS_FIRMWARES = ImmutableSet.of("2.4.2.88");
    private static final ImmutableSet<String> KNOWN_ONE_FIRMWARES = ImmutableSet.of("30.192.103.34");
    private static final ImmutableSet<String> KNOWN_ALT_FIRMWARES = ImmutableSet.of("29.192.104.59", "32.192.104.82", "32.192.104.109", "32.192.105.64", "32.192.106.0", "44.192.105.72", new String[0]);
    private static final ImmutableSet<String> KNOWN_TIME_TRAVEL_TESTED = ImmutableSet.of("1.6.5.25");
    private static final ImmutableSet<String> KNOWN_ALT2_FIRMWARES = ImmutableSet.of("37.192.105.94");

    static boolean isG6Firmware(String str) {
        return str != null && (KNOWN_G6_FIRMWARES.contains(str) || KNOWN_G6_REV2_FIRMWARES.contains(str) || KNOWN_G6_PLUS_FIRMWARES.contains(str) || str.startsWith("1.6.5.") || str.startsWith("2.18.") || str.startsWith("2.24.") || str.startsWith("2.27.") || str.startsWith("2.4.") || isDex1Firmware(str));
    }

    static boolean isDex1Firmware(String str) {
        return str.startsWith("30.");
    }

    public static boolean isG6Rev2(String str) {
        return str != null && (KNOWN_G6_REV2_FIRMWARES.contains(str) || str.startsWith("2.18.") || str.startsWith("2.24.") || str.startsWith("2.27."));
    }

    public static boolean isG6Plus(String str) {
        return str != null && (KNOWN_G6_PLUS_FIRMWARES.contains(str) || str.startsWith("2.4."));
    }

    static boolean isG5Firmware(String str) {
        return KNOWN_G5_FIRMWARES.contains(str);
    }

    static boolean isFirmwareTimeTravelCapable(String str) {
        return KNOWN_TIME_TRAVEL_TESTED.contains(str);
    }

    public static boolean isFirmwareTemperatureCapable(String str) {
        return !isG6Plus(str);
    }

    public static boolean isFirmwareResistanceCapable(String str) {
        return (isG6Rev2(str) || isG6Plus(str)) ? false : true;
    }

    static boolean isFirmwareRawCapable(String str) {
        return str == null || str.equals("") || KNOWN_G5_FIRMWARES.contains(str) || KNOWN_G6_FIRMWARES.contains(str) || KNOWN_G6_REV2_RAW_FIRMWARES.contains(str);
    }

    static boolean isFirmwarePreemptiveRestartCapable(String str) {
        return isFirmwareRawCapable(str);
    }

    static boolean isAltOrAlt2Firmware(String str) {
        return KNOWN_ALT_FIRMWARES.contains(str) || KNOWN_ALT2_FIRMWARES.contains(str);
    }

    static boolean isAlt2Firmware(String str) {
        return KNOWN_ALT2_FIRMWARES.contains(str);
    }

    public static boolean isTransmitterModified(String str) {
        VersionRequest1RxMessage versionRequest1RxMessage = (VersionRequest1RxMessage) Ob1G5StateMachine.getFirmwareXDetails(str, 1);
        return versionRequest1RxMessage != null && versionRequest1RxMessage.max_runtime_days >= 180;
    }

    public static boolean isTransmitterStandardFirefly(String str) {
        return !isTransmitterModified(str) && isTransmitterRawIncapable(str);
    }

    public static boolean isDeviceAltOrAlt2(String str) {
        return isAltOrAlt2Firmware(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isDeviceAlt2(String str) {
        return isAlt2Firmware(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isTransmitterG5(String str) {
        return isG5Firmware(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isTransmitterG6(String str) {
        return isG6Firmware(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isTransmitterG6Rev2(String str) {
        return isG6Rev2(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isTransmitterTimeTravelCapable(String str) {
        return isFirmwareTimeTravelCapable(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isTransmitterRawCapable(String str) {
        return isFirmwareRawCapable(Ob1G5StateMachine.getRawFirmwareVersionString(str)) || isTransmitterModified(str);
    }

    public static boolean doWeHaveVersion(String str) {
        String rawFirmwareVersionString = Ob1G5StateMachine.getRawFirmwareVersionString(str);
        return (JoH.emptyString(rawFirmwareVersionString) || rawFirmwareVersionString.equals("error")) ? false : true;
    }

    public static boolean isTransmitterRawIncapable(String str) {
        String rawFirmwareVersionString = Ob1G5StateMachine.getRawFirmwareVersionString(str);
        return doWeHaveVersion(str) && isKnownFirmware(rawFirmwareVersionString) && !isFirmwareRawCapable(rawFirmwareVersionString);
    }

    public static boolean isTransmitterPreemptiveRestartCapable(String str) {
        return isFirmwarePreemptiveRestartCapable(Ob1G5StateMachine.getRawFirmwareVersionString(str));
    }

    public static boolean isKnownFirmware(String str) {
        return str == null || str.equals("") || KNOWN_G5_FIRMWARES.contains(str) || KNOWN_G6_FIRMWARES.contains(str) || KNOWN_ONE_FIRMWARES.contains(str) || KNOWN_ALT_FIRMWARES.contains(str) || KNOWN_G6_REV2_FIRMWARES.contains(str) || KNOWN_G6_PLUS_FIRMWARES.contains(str) || KNOWN_ALT2_FIRMWARES.contains(str);
    }
}