Exemple #1
0
static void
get_device_id(void)
{
  uint8_t digest[16];
  uint8_t buf[64];

  int fd = open("/sys/class/net/eth0/address", O_RDONLY);

  if(fd == -1)
    return;

  int r = read(fd, buf, sizeof(buf));
  close(fd);
  if(r < 1)
    return;

  md5_decl(ctx);
  md5_init(ctx);
  md5_update(ctx, buf, r);
  md5_final(ctx, digest);
  bin2hex(gconf.device_id, sizeof(gconf.device_id), digest, sizeof(digest));
}
Exemple #2
0
JNIEXPORT void JNICALL
Java_com_lonelycoder_mediaplayer_Core_coreInit(JNIEnv *env, jobject obj, jstring j_settings, jstring j_cachedir, jstring j_sdcard, jstring j_android_id, jint time_24hrs)
{
  char path[PATH_MAX];
  trace_arch(TRACE_INFO, "Core", "Native core initializing");
  gconf.trace_level = TRACE_DEBUG;
  gconf.time_format_system = time_24hrs ? TIME_FORMAT_24 : TIME_FORMAT_12;

  struct timeval tv;
  gettimeofday(&tv, NULL);
  srand(tv.tv_usec);

  const char *settings   = (*env)->GetStringUTFChars(env, j_settings, 0);
  const char *cachedir   = (*env)->GetStringUTFChars(env, j_cachedir, 0);
  const char *sdcard     = (*env)->GetStringUTFChars(env, j_sdcard, 0);
  const char *android_id = (*env)->GetStringUTFChars(env, j_android_id, 0);

  gconf.persistent_path = strdup(settings);
  gconf.cache_path      = strdup(cachedir);

  snprintf(path, sizeof(path), "%s/Download", sdcard);
  mkdir(path, 0770);
  snprintf(path, sizeof(path), "%s/Download/movian_upgrade.apk", sdcard);
  gconf.upgrade_path = strdup(path);
  unlink(gconf.upgrade_path);

  uint8_t digest[16];

  md5_decl(ctx);
  md5_init(ctx);

  md5_update(ctx, (const void *)android_id, strlen(android_id));
  md5_update(ctx, (const void *)android_serialno, strlen(android_serialno));

  md5_final(ctx, digest);
  bin2hex(gconf.device_id, sizeof(gconf.device_id), digest, sizeof(digest));


  (*env)->ReleaseStringUTFChars(env, j_settings, settings);
  (*env)->ReleaseStringUTFChars(env, j_cachedir, cachedir);
  (*env)->ReleaseStringUTFChars(env, j_sdcard,   sdcard);
  (*env)->ReleaseStringUTFChars(env, j_android_id, android_id);


  gconf.concurrency =   sysconf(_SC_NPROCESSORS_CONF);

  setlocale(LC_ALL, "");

  signal(SIGPIPE, SIG_IGN);

  main_init();

  jclass c = (*env)->FindClass(env, "com/lonelycoder/mediaplayer/Core");
  STCore = (*env)->NewGlobalRef(env, c);

  prop_jni_init(env);

  service_create("music", "Music", "file:///sdcard/Music",
                 "music", NULL, 0, 1, SVC_ORIGIN_SYSTEM);

  service_create("music", "Movies", "file:///sdcard/Movies",
                 "video", NULL, 0, 1, SVC_ORIGIN_SYSTEM);

  android_nav = nav_spawn();
}