Переменные среды Linux для Linux

Я прокручивал каталог / proc на своем устройстве Android через оболочку adb и просматривал содержимое файла окружения для одного из процессов. Список переменных среды выглядит следующим образом:

  • ДОРОЖКА
  • LD_LIBRARY_PATH
  • ANDROID_BOOTLOGO
  • ANDROID_ROOT
  • ANDROID_ASSETS
  • ANDROID_DATA
  • ANDROID_STORAGE
  • ASEC_MOUNTPOINT
  • LOOP_MOUNTPOINT
  • загрузочный путь к классам
  • ВНЕШНЕЕ ХРАНИЛИЩЕ
  • EMULATED_STORAGE_SOURCE
  • EMULATED_STORAGE_TARGET
  • ANDROID_PROPERTY_WORKSPACE
  • ANDROID_SOCKET_zygote

Этот список отличается от переменных среды, видимых в Linux. Когда я вижу файл окружения некоторого процесса на моем ubuntu-12.04, я вижу список намного дольше и совсем другой (только PATH – тот же самый).

У меня есть следующие вопросы:

  • Где Android определяет переменные среды?

    Поскольку файл окружения в Android отличается от файла linux, он должен был где-то изменить

  • Есть ли способ предоставить значения по умолчанию для этих переменных?

    Я полагаю, что init может иметь значения по умолчанию, а forked-процессы наследуют значения и возможна модификация значений где-то после forking (если кто-то знает фактическое местоположение такого кода, пожалуйста, поделитесь)

  • Какова цель каждой переменной среды в списке?

    Я понимаю переменные PATH & LD_LIBRARY_PATH, которые получены из linux. А как насчет других? Когда они используются? Для чего их использует Android-приложение (возможно, NDK)?

Благодарю.

Android использует Linux, но это не GNU / Linux, поэтому многие вещи разные.