由于我的主力机是苹果,身旁的安卓设备又无法用表盘自定义工具安装或删除小程序,用小火箭模块功能代理安装小程序后没法删除,因此对小程序删除进行了一些研究。
通过反编译得到了一些东西(求原谅!GiveMeFive 别打我!),写(抄)出以下代码:
感觉标准输出的第二行里面 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 中删除小程序会发生什么事情?