Как скомпилировать ядро AOSP Android и протестировать его с Эмулятором Android?

Попытайтесь изменить имена аргумента к sender и args. И, после того, как Вы имеете его работа, переключаете перекличку на ScriptManager.RegisterClientScriptBlock, независимо от использования Ajax.

51
задан Ciro Santilli 新疆改造中心法轮功六四事件 17 January 2018 в 11:18
поделиться

3 ответа

С августа 2009 года ядро больше не является частью стандартного репозитория, который вы получаете, следуя инструкциям по загрузке исходного кода для проекта android с открытым исходным кодом. Шаги, необходимые для успешной загрузки, сборки и запуска конкретного ядра на эмуляторе, следующие:

  • Получите ядро Android, добавив его в репозиторий или выполнив вручную:
    git clone https://android.googlesource. com/kernel/goldfish.git
  • Проверьте правильную ветку для работы с эмулятором, т.е. goldfish:
    git checkout -t origin/android-goldfish-2.6.29 -b goldfish
  • Сгенерируйте конфигурацию эмулятора (эмулятор qemu запускает arm-код, т.е. arm-конфиг):
    make ARCH=arm goldfish_defconfig
    • если это не работает, попробуйте make ARCH=arm goldfish_armv7_defconfig
  • Теперь соберите ядро, используя инструменты кросс-компиляции, распространяемые с открытым исходным кодом:
    make ARCH=arm CROSS_COMPILE=mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2. 1/bin/arm-eabi-
  • Собранное таким образом ядро должно оказаться в папке arch/arm/boot вашего дерева ядра (куда вы поместили код из git clone)
  • Для запуска эмулятора с вашим ядром есть две альтернативы, либо скопировать его в папку prebuilt kernel проекта с открытым исходным кодом, чтобы заменить стандартное ядро. Другой вариант - запустить эмулятор с установленной опцией ядра:
    emulator -kernel mydroid/kernel/common/arch/arm/boot/zImage

Обратите внимание, что в приведенном выше описании я использовал пути по умолчанию, вам нужно изменить их на те, которые подходят для вашей установки. Прошло некоторое время с тех пор, как я проверял это в последний раз, но я думаю, что это должно работать.

Немного дополнительной информации: В стандартном дистрибутиве Android с открытым исходным кодом ядро распространяется как предварительно собранный бинарник в папке mydroid/prebuilt/android-arm/kernel, а исходный код не включен. Исходный код ядра был удален из стандартного манифеста по двум причинам, как я понимаю. Первая заключается в том, что он занимает много времени и места на диске для компонента платформы, с которым большинство людей не будет много работать. Другая причина в том, что поскольку ядро собирается с помощью системы сборки ядра, а не как часть системы сборки aosp, имеет смысл держать их отдельно. Общая ветка для ядра - это ветка, используемая эмулятором. Существуют также ветки для экспериментального, msm (платформы Qualcomm) и Omap (платформа TI) и, возможно, некоторые другие. Если вы хотите использовать ядро Android с аппаратным обеспечением, эти ветки могут быть более интересны для вас.

55
ответ дан 7 November 2019 в 10:01
поделиться

Это просто. Следуйте инструкциям на http://source.android.com/download для получения и компиляции исходного кода для всего Android. Это займет некоторое время, но не так уж сложно.

Создав его, вы получите вывод в каталог / out . Это включает в себя, помимо образов ПЗУ, также множество инструментов, включая эмулятор. Мой эмулятор находится по адресу / out / host / linux-x86 / bin / emulator . Просто установите переменную среды с именем ANDROID_PRODUCT_OUT на / out / target / product / generic , а затем запуск эмулятора без каких-либо параметров запустит ваше скомпилированное ПЗУ.

6
ответ дан 7 November 2019 в 10:01
поделиться

Просто чтобы исправить несколько вещей из поста BMB (который был очень полезен для меня, он спас мой проект) :

  • git clone git://android.git.kernel.org/kernel/common.git (пропущен kernel) ;
  • git checkout -t origin/android-goldfish-2.6. 29 -b goldfish (то же самое) ;
  • make ARCH=arm goldfish_defconfig (idem) ;
  • make ARCH=arm CROSS_COMPILE=mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2. 1/bin/arm-eabi- (idem)
  • emulator -avd my_avd -kernel mydroid/kernel/common/arch/arm/boot/zImage (здесь я добавил в команду avd, без этого у меня не работало).

19
ответ дан 7 November 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: