斐讯 R1 音箱/原厂固件/LED

斐讯 R1 音箱/原厂固件/LED

liblight.so

int __fastcall light_close(int a1)
{
  int v1; // r0
  int v2; // r2
  const char *v3; // r1
  int result; // r0
  int v5; // [sp+8h] [bp-A0h]
  char v6; // [sp+Ch] [bp-9Ch]

  v5 = 0;
  v1 = sub_828(a1, &v5);
  if ( !v1 )
    return -1;
  switch ( v5 )
  {
    case 0:
      memset(&v6, 0, 0x80u);
      _sprintf_chk(&v6, 0, 128, "/sys/class/leds/multi_leds%d/color", 0);
      v2 = 60;
      v3 = "1 200 1 1 1 0 0 200 0 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15";
      return sub_700((int)&v6, (int)v3, v2);
    case 1:
      memset(&v6, 0, 0x80u);
      _sprintf_chk(&v6, 0, 128, "/sys/class/leds/multi_leds%d/color", 1);
      v2 = 96;
      v3 = "1 200 1 1 1 0 0 200 0 24 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39";
      return sub_700((int)&v6, (int)v3, v2);
    case 2:
      result = sub_760(v1, 0);
      break;
    default:
      result = 0;
      break;
  }
  return result;
}

int __fastcall light_show(int a1)
{
  int v1; // r0
  const char *v2; // r6
  int v4; // r0
  int v5; // [sp+8h] [bp-A0h]
  char v6; // [sp+Ch] [bp-9Ch]

  v5 = 0;
  v1 = sub_828(a1, &v5);
  v2 = (const char *)v1;
  if ( !v1 )
    return -1;
  if ( v5 == 2 )
    return sub_760(v1, 1);
  memset(&v6, 0, 0x80u);
  _sprintf_chk(&v6, 0, 128, "/sys/class/leds/multi_leds%d/color", v5);
  v4 = strlen(v2);
  return sub_700((int)&v6, (int)v2, v4);
}

int __fastcall light_set(int a1, int a2, int a3)
{
  int v3; // r8
  int v4; // r4
  int v5; // r5
  int v6; // r0
  int v7; // r0
  char v9[128]; // [sp+Ch] [bp-9Ch]

  v3 = a3;
  v4 = a1;
  v5 = a2;
  memset(v9, 0, 0x80u);
  v6 = _strlen_chk(v9, 128);
  sprintf(&v9[v6], "%llx %06x", v4, v5, v3);
  v7 = _strlen_chk(v9, 128);
  return sub_700((int)"/sys/class/leds/multi_leds0/led_color", (int)v9, v7);
}

Last update: 2020-11-04 07:22:47 UTC