点击登录

讨论 有关小米手环7删除独立小程序的问题

lzc256

Lv.5
社区会员
米坛社区四周年纪念勋章
由于我的主力机是苹果,身旁的安卓设备又无法用表盘自定义工具安装或删除小程序,用小火箭模块功能代理安装小程序后没法删除,因此对小程序删除进行了一些研究。

通过反编译得到了一些东西(求原谅!GiveMeFive 别打我!),写(抄)出以下代码:
Java:
import java.util.Arrays;

public class Main {
    public static byte[] fromUint32(int paramInt) {
        return new byte[] {
            (byte) (paramInt & 0xFF), (byte) ((paramInt >> 8) & 0xFF),
            (byte) ((paramInt >> 16) & 0xFF), (byte) ((paramInt >> 24) & 0xFF)
        };
    }

    private static byte charToByte(char paramChar) {
        return (byte) "0123456789ABCDEF".indexOf(paramChar);
    }

    public static byte[] hexStringToBytes(String paramString) {
        if ((paramString == null) || paramString.equals("")) {
            return null;
        }

        paramString = paramString.toUpperCase();

        int i = paramString.length() / 2;
        char[] arrayOfChar = paramString.toCharArray();
        byte[] arrayOfByte = new byte[i];

        for (byte b = 0; b < i; b++) {
            int j = b * 2;
            byte b1 = charToByte(arrayOfChar[j]);
            arrayOfByte[b] = (byte) (byte) (charToByte(arrayOfChar[j + 1]) |
                (b1 << 4));
        }

        return arrayOfByte;
    }
    
    public static String hexChars(byte[] paramArrayOfbyte) {
    return (paramArrayOfbyte == null) ? "" : hexChars(paramArrayOfbyte, 0, paramArrayOfbyte.length);
  }
 
    public static String hexChars(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) {
    int i = paramInt2;
    if (paramInt2 == -1)
      i = paramArrayOfbyte.length - paramInt1;
    char[] arrayOfChar1 = "0123456789ABCDEF".toCharArray();
    char[] arrayOfChar2 = new char[i * 2];
    for (paramInt2 = 0; paramInt2 < i; paramInt2++) {
      int j = paramArrayOfbyte[paramInt2 + paramInt1] & 0xFF;
      int k = paramInt2 * 2;
      arrayOfChar2[k] = (char)arrayOfChar1[j >>> 4];
      arrayOfChar2[k + 1] = (char)arrayOfChar1[j & 0xF];
    }
    return new String(arrayOfChar2);
  }
    
    public static void main(String[] args) {
        int appid;
        appid = 23301;    // appid

        byte[] arrayOfByte1 = fromUint32(appid);
        byte[] arrayOfByte2 = hexStringToBytes("030700570014000000A000020103000000000000000000000000002B670000");
        arrayOfByte2[arrayOfByte2.length - 4] = (byte) arrayOfByte1[0];
        arrayOfByte2[arrayOfByte2.length - 3] = (byte) arrayOfByte1[1];
        arrayOfByte2[arrayOfByte2.length - 2] = (byte) arrayOfByte1[2];
        arrayOfByte2[arrayOfByte2.length - 1] = (byte) arrayOfByte1[3];
        
        System.out.println(Arrays.toString(arrayOfByte1));
        
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("SendData ");
        stringBuilder.append("00000016-0000-3512-2118-0009af100700");//uid
        stringBuilder.append(",Data=");
        stringBuilder.append(hexChars(arrayOfByte2));
        
        System.out.println("Result: " + stringBuilder.toString());
    }
}

感觉标准输出的第二行里面 Data 后的数据发送到手环 00000016-0000-3512-2118-0009af100700 就可以删除独立小程序了,但是通过一个蓝牙软件发送后没有任何反应。

这就很奇怪了。不知道是不是与编码之类的问题有关?

还有个问题,假如直接在 Zepp Life 中删除小程序会发生什么事情?
 
由于我的主力机是苹果,身旁的安卓设备又无法用表盘自定义工具安装或删除小程序,用小火箭模块功能代理安装小程序后没法删除,因此对小程序删除进行了一些研究。

通过反编译得到了一些东西(求原谅!GiveMeFive 别打我!),写(抄)出以下代码:
Java:
import java.util.Arrays;

public class Main {
    public static byte[] fromUint32(int paramInt) {
        return new byte[] {
            (byte) (paramInt & 0xFF), (byte) ((paramInt >> 8) & 0xFF),
            (byte) ((paramInt >> 16) & 0xFF), (byte) ((paramInt >> 24) & 0xFF)
        };
    }

    private static byte charToByte(char paramChar) {
        return (byte) "0123456789ABCDEF".indexOf(paramChar);
    }

    public static byte[] hexStringToBytes(String paramString) {
        if ((paramString == null) || paramString.equals("")) {
            return null;
        }

        paramString = paramString.toUpperCase();

        int i = paramString.length() / 2;
        char[] arrayOfChar = paramString.toCharArray();
        byte[] arrayOfByte = new byte[i];

        for (byte b = 0; b < i; b++) {
            int j = b * 2;
            byte b1 = charToByte(arrayOfChar[j]);
            arrayOfByte[b] = (byte) (byte) (charToByte(arrayOfChar[j + 1]) |
                (b1 << 4));
        }

        return arrayOfByte;
    }
   
    public static String hexChars(byte[] paramArrayOfbyte) {
    return (paramArrayOfbyte == null) ? "" : hexChars(paramArrayOfbyte, 0, paramArrayOfbyte.length);
  }
 
    public static String hexChars(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) {
    int i = paramInt2;
    if (paramInt2 == -1)
      i = paramArrayOfbyte.length - paramInt1;
    char[] arrayOfChar1 = "0123456789ABCDEF".toCharArray();
    char[] arrayOfChar2 = new char[i * 2];
    for (paramInt2 = 0; paramInt2 < i; paramInt2++) {
      int j = paramArrayOfbyte[paramInt2 + paramInt1] & 0xFF;
      int k = paramInt2 * 2;
      arrayOfChar2[k] = (char)arrayOfChar1[j >>> 4];
      arrayOfChar2[k + 1] = (char)arrayOfChar1[j & 0xF];
    }
    return new String(arrayOfChar2);
  }
   
    public static void main(String[] args) {
        int appid;
        appid = 23301;    // appid

        byte[] arrayOfByte1 = fromUint32(appid);
        byte[] arrayOfByte2 = hexStringToBytes("030700570014000000A000020103000000000000000000000000002B670000");
        arrayOfByte2[arrayOfByte2.length - 4] = (byte) arrayOfByte1[0];
        arrayOfByte2[arrayOfByte2.length - 3] = (byte) arrayOfByte1[1];
        arrayOfByte2[arrayOfByte2.length - 2] = (byte) arrayOfByte1[2];
        arrayOfByte2[arrayOfByte2.length - 1] = (byte) arrayOfByte1[3];
       
        System.out.println(Arrays.toString(arrayOfByte1));
       
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("SendData ");
        stringBuilder.append("00000016-0000-3512-2118-0009af100700");//uid
        stringBuilder.append(",Data=");
        stringBuilder.append(hexChars(arrayOfByte2));
       
        System.out.println("Result: " + stringBuilder.toString());
    }
}

感觉标准输出的第二行里面 Data 后的数据发送到手环 00000016-0000-3512-2118-0009af100700 就可以删除独立小程序了,但是通过一个蓝牙软件发送后没有任何反应。

这就很奇怪了。不知道是不是与编码之类的问题有关?

还有个问题,假如直接在 Zepp Life 中删除小程序会发生什么事情?
zepp life是删除不了小程序的,那个减号只是像隐藏女性健康一样隐藏小程序
 
我安卓手机用表盘替换法弄得独立小程序 删除表盘后出现了新表盘同步不成功的问题
 

*这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责

相似主题

Home 首页
Home 资源
News 发现
Account 我的
顶部