Intereting Posts
Использование google-аккаунта для входа в Android-приложение Сжатие видео с использованием FFMPEG и JNI Андроид, есть ли какой-либо метод, позволяющий задержать или спать? Как получить текст из autocomplete textview android BroadcastReceiver, объявленный в манифесте, не получает трансляцию Реализация текстового редактора в Android? Как центрировать вектор, который можно рисовать в списке слоев без масштабирования Android Computer Vision Сравнение JavaCV OpenCV FastCV Как я могу наложить CordovaWebView PhoneGap поверх собственного вида на Android? ViewPager с API Карт Google v2: таинственный черный вид Как предотвратить браузер Chrome Chrome Chrome для отображения лупы, когда пользователи нажимают кнопку? Android и ActionBarCompat: как изменить видимость действий во время выполнения на устройствах до ICS? Appcompat v7 не втягивается в проект HttpClient.execute бросает OutOfMemoryError R не может быть разрешен – Android, без импорта android.R; заявление

Push my apk to / system / app

Как я могу подтащить свой пакет приложений в папку «/ system / app» для эмулятора Android?

Я уже пытался использовать:
"Adb push myApk.apk / system / app"
И это дает мне следующее:

"failed to copy: ... No space left on device" 

Хотя из настроек -> sdCard & Phone Storage, я получаю 37Mb внутреннего свободного пространства.

Весь смысл этой потребности
Связанных с разрешениями.

Мне нужно иметь разрешение INSTALL_PACKAGES
И я знаю, что, ставя там свое приложение,
In / system / app, я получаю это разрешение.

Solutions Collecting From Web of "Push my apk to / system / app"

Как правило, единственный способ получить доступ к каталогу / system / "- это укоренение устройства. Я точно не знаю, требуется ли это для эмулятора. Это может быть вашей проблемой.

Я могу установить APK в /system/app со следующими шагами.

  1. Нажмите APK на SD-карту.

     $ adb push SecureSetting.apk /sdcard/ 
  2. Войдите в консоль и получите оболочку

     $ adb shell 
  3. Переключитесь на суперпользователя. Если ваше устройство не внедрено, сначала закрепите его. (Если вы не знаете, как это сделать, просто Google.)

     $ su 
  4. Перезагрузите системный раздел с помощью разрешения WRITE.

     $ mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 
  5. Cat ваш APK из /sdcard/ to /system/ , некоторые ребята получают сбой с командой cp из-за cp не поддерживается. Поэтому вместо этого используйте cat .

     $ cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk 
  6. Отменить /system раздел вернуться к READ-ONLY и выйти

     $ mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system $ exit 

Затем перезагрузите устройство, APK должен быть установлен в /system/app .

Настройки -> sdCard & phone storage говорит о папке / data.

/ System устанавливается отдельно, и я думаю, что там нет способа писать там, если вы не создадите собственную сборку Android.

См.

 adb shell # df 

Это шаги, если вы устанавливаете систему apk для Android 5.0 или более поздних версий. Для более старых версий используйте ответ posaidong

Переименуйте файл apk в base.apk

 $ adb push base.apk /sdcard/ 

Войдите в консоль и получите оболочку

 $ adb shell 

Переключитесь на суперпользователя. Если ваше устройство не внедрено, сначала закрепите его. (Если вы не знаете, как это сделать, просто Google.)

 $ su 

Перезагрузите системный раздел с помощью разрешения WRITE.

 $ mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 

Создайте тестовый каталог внутри / system / app. (Или может использовать / system / priv-app, а также). В идеале это имя папки должно быть именем приложения. Пока давайте использовать Test

 $ mkdir /system/app/Test 

Требуется 755 разрешений для этого каталога

 $ chmod 755 /system/app/Test 

Скопируйте свой base.apk внутри

 $ cat /sdcard/base.apk > /system/app/Test/Base.apk 

Отменить / системный раздел вернуться к READ-ONLY и выйти

 $chmod 644 /system/app/Test/Base.apk 

Требуется разрешение 644 для этого каталога

 $ mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system $ exit 

Перезагрузите устройство. Когда загрузка завершена, вы увидите системное сообщение, такое как обновление Android …

Сначала вам нужно запустить adb remount , затем он должен позволить вам adb push на /system папки

Следующий пакетный файл будет устанавливать любые файлы apk в папке в каталог / system / app. Он монтирует системный диск как rw, затем копирует файлы.

Чтобы использовать его, поместите следующий код в текстовый редактор и сохраните его как install.bat на компьютере под управлением Windows. Затем дважды щелкните пакетный файл, чтобы установить любые файлы APK, которые находятся в той же папке, что и командный файл.

ПРИМЕЧАНИЕ. Вы не можете повторно установить системный раздел, если у вас нет root на устройстве. Я в основном использовал это в эмуляторе, который по умолчанию использует root (и был исходным вопросом), но концепция должна быть одинаковой на физическом устройстве.

 @ECHO OFF
 % ~ D0
 CD% ~ dp0
 Adb root
 Adb shell mount -o rw, remount -t yaffs2 / dev / block / mtdblock3 / system
 Adb shell rm /system/app/SdkSetup.apk
 For / f %% a IN ('dir / b * .apk') делает adb push %% a / system / app /.

Используйте приведенные ниже команды из вашей супер-пользовательской оболочки ADB. Скопируйте APK вашего APP на SD-карту или внутреннюю память.

 $ adb shell $ su $ mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system $ cp /sdcard/<Your_APK_PATH> /system/app/file_name_comes_here.apk $ chmod 644 /system/app/<YourAPK>.apk 

Затем перезагрузите устройство

Вы должны установить систему как чтение / запись, а затем нажать приложение.

На этот вопрос отвечает: Push .apk to / system / app / в HTC HERO

Даже до adb remount вы должны изменить разрешения для / system в оболочке adb. Вы можете использовать chmod для изменения разрешений.

Если ваш apk достаточно мал, чтобы нажать, попробуйте еще раз. Я встретил ту же проблему и дважды пытался нажать apks на / system / app /

По-видимому, места для вашего приложения недостаточно для монтирования «/ system». Вы можете проверить это с помощью команды «adb shell df».

Чтобы решить эту проблему, вам необходимо установить параметр размера раздела при запуске AVD следующим образом:

 emulator.exe -avd <your avd name> -partition-size 512 

Убедитесь, что у вас достаточно инодов, у вас может быть достаточно памяти, но недостаточно inode, т.е. файла-заполнителя.

Я столкнулся с этой ситуацией несколько раз, копируя файлы apk в /system раздел и, наконец, разрешив его, выполните следующие действия:

  • Проверьте свободное пространство в /system разделе, используя df из оболочки adb . Скорее всего, свободное пространство будет меньше размера файла apk.

     Filesystem Size Used Free Blksize /dev 1.3G 80.0K 1.3G 4.0K /sys/fs/cgroup 1.3G 12.0K 1.3G 4.0K /mnt/secure 1.3G 0.0K 1.3G 4.0K /mnt/asec 1.3G 0.0K 1.3G 4.0K /mnt/obb 1.3G 0.0K 1.3G 4.0K /system 3.5G 3.5G 10.0M 4.0K /efs 15.7M 2.8M 12.9M 4.0K /cache 192.8M 736.0K 192.1M 4.0K /data 25.5G 12.7G 12.8G 4.0K /persdata/absolute 4.9M 120.0K 4.8M 4.0K /sbfs 10.8M 8.0K 10.7M 4.0K /mnt/shell/knox-emulated 25.5G 12.7G 12.8G 4.0K /mnt/shell/privatemode 25.4G 12.7G 12.7G 4.0K /mnt/shell/emulated 25.4G 12.7G 12.7G 4.0K /preload 5.8M 3.3M 2.5M 4.0K 
  • Используйте du / system для получения размеров каждой папки и файла в /system разделе. Упорядочить вывод в порядке убывания размера (ов), чтобы получить (что-то подобное):

     4091840 /system/ 1199416 /system/app 964064 /system/priv-app 558616 /system/lib64 373320 /system/lib 206624 /system/vendor 170952 /system/app/WebViewGoogle 148824 /system/app/WebViewGoogle/lib 125488 /system/voice 125480 /system/voice/embedded 122880 /system/app/Chrome 106520 /system/framework 102224 /system/priv-app/Velvet 96552 /system/app/SBrowser_3.0.38 93936 /system/vendor/lib64 93792 /system/vendor/lib64/egl 92552 /system/tts 92512 /system/tts/lang_SMT ... 
  • Удалите ненужные файлы из /system/voice/embedded , /system/tts/lang_SMT (для поддержки языка / локали) и / или других папок для свободного места в /system разделе для размещения нового файла apk. Удаление файлов в разделах, отличных от /system может не помочь в этом сценарии. ( NB : для этого шага могут потребоваться привилегии ROOT и перезагрузка /system раздел в режиме чтения-записи с использованием mount -o rw, remount / system )

Если вы просто хотите установить его, вы всегда можете: adb install myApk.apk .