2016-10-22 3 views
3

Описание проблемы:Запуск Экспоузд в Google Android Emulator с пользовательским изображением

Мне нужно droidmon работать на определенном андроида изображение с заданными параметрами. Xposed framework показывает ошибку при установке, что требует доступа root.

Окружающей среда:

Google Android Emulator работает обычай коренится Android 4.4.2 x86 образом с версией ядра 3.4.67+ (но у меня есть такая же проблема с 3.10+) Используются параметры (+ дополнительный PARAMS которые не имеют ничего общего с андроида itslef):

  • -avd
  • -kernel
  • -ramdisk
  • -по-кэш
  • -selinux разрешительного
  • -по-snapstorage
  • -verbose
  • -show-ядра

SDK-Tools-Version: 25.2.2

SDK-Platform-Tools: 24.0.3

Android настроен на предоставление неопубликованных источников для apks

Уже пробовал:

  1. переустановки/RW Системы
  2. Использование -selinux инвалидов (Экспоуздо однако требует -selinux разрешительного)
  3. Извлечения обновления двоичного из Экспоузда и запустить скрипт с су

Текущий статус:

Если я стараюсь устанавливать Экспоузд я получаю следующие сообщения журнала из эмулятора:

[ 355.372965] type=1400 audit(1477138733.355:23): avc: denied { execute } for pid=2796 comm="posed.installer" name="app_process" dev="mtdblock1" ino=7847 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:app_data_file:s0 tclass=file permissive=1 
[ 355.372984] type=1400 audit(1477138733.355:24): avc: denied { execute_no_trans } for pid=2796 comm="posed.installer" path="/data/data/de.robv.android.xposed.installer/cache/app_process" dev="mtdblock1" ino=7847 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:app_data_file:s0 tclass=file permissive=1 
[ 355.440354] type=1400 audit(1477138733.415:25): avc: denied { read } for pid=2769 comm="posed.installer" name="app_process" dev="mtdblock0" ino=96 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:zygote_exec:s0 tclass=file permissive=1 
[ 355.440410] type=1400 audit(1477138733.415:26): avc: denied { open } for pid=2769 comm="posed.installer" name="app_process" dev="mtdblock0" ino=96 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:zygote_exec:s0 tclass=file permissive=1 
[ 355.440450] type=1400 audit(1477138733.415:27): avc: denied { getattr } for pid=2769 comm="posed.installer" path="/system/bin/app_process" dev="mtdblock0" ino=96 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:zygote_exec:s0 tclass=file permissive=1 
[ 365.476143] type=1400 audit(1477138743.455:28): avc: denied { execute } for pid=2805 comm="Thread-110" name="su" dev="mtdblock0" ino=972 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1 
[ 365.476280] type=1400 audit(1477138743.455:29): avc: denied { read open } for pid=2805 comm="Thread-110" name="su" dev="mtdblock0" ino=972 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1 
[ 365.476371] type=1400 audit(1477138743.455:30): avc: denied { execute_no_trans } for pid=2805 comm="Thread-110" path="/system/xbin/su" dev="mtdblock0" ino=972 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1 

Status-Update:

Как я знаю, на данный момент, изображение не укоренились должным образом. Я перезагрузил изображение, используя упакованный su-файл из SuperSU-2.78. Я манипулировал system.img, установив его в папку на моей Linux-машине и добавив su и daemonsu (в основном, скопировал и переименовал) в/system/xbin/и изменил разрешения на 6755 для обоих файлов. Кроме того, сейчас я добавил 2 строки в конце /etc/init.goldfish.sh

#remount /system rw 
mount -o rw,remount /system 

#start daemonsu as auto-daemon 
/system/xbin/daemonsu --auto-daemon 

После установки обоих Superuser.apk из SuperSU и подходящего Экспоузд-версии, Экспоузд первоначально устанавливает, но после перезагрузки это приводит к segfaults в libdvm.так

ответ

0

Наконец удалось получить эту работу (требуется более старую версию SDK (до ноября 2016)

SuperSU все еще требуется, как сказано в вопросе выше

Kernel Image ниже версии 3.10 (ядра QEMU или двигатель классический)

  1. Запуск эмулятора в расширенном режиме
  2. примечание временный файл, который используется для установки/системы внутри QEMU
  3. Установите Экспоузд но Отменить перезагружать
  4. Копировать временную system.img из/TMP/android- {имя пользователя}/{emulator- случайные символы}, чтобы позволяет сказать, что ваш домашний каталог
  5. Shutdown эмулятор
  6. Переписать существующую систему. IMG с одной из вашей домашней директории
  7. Start Emulator снова
  8. Xposed должен теперь быть операционной

Kernel VERSI на 3.10+ (kernel-ranchu или real sandboxed emulator)

К сожалению, в настоящее время нет известного способа модификации system.img изнутри ranchu-emulator, ранчо, кажется, блокирует каждую операцию записи. Блокированные операции позволяют системе думать, что раздел разбит, поэтому система повторно монтирует раздел в качестве резервной резервной копии.

Два найдены обходные:

1.) Параметр Использовать классический, когда-движка запуска эмулятора (поэтому принуждая ядра QEMU), вы можете использовать описанные выше шаги, чтобы сделать изменения

2 .) Используйте снимок версии 3.10 для ядра, чтобы избежать эмулятора ranchu. Вы можете использовать шаги выше и после того, как ваши изменения были применены, используйте предыдущее изображение ядра снова

Смежные вопросы