Подтвердить что ты не робот

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, я получаю это разрешение.

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

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

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

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

    $ cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk 
    
  • Отменить /system раздел обратно в READ-ONLY и выйти

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

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

Ответ 3

Настройки

- > sdCard и память телефона говорят о папке/данных.

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

См. mounts, запустив

adb shell

# df

Ответ 4

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

Переименуйте файл 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...

Ответ 5

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

Ответ 6

Следующий командный файл установит любые файлы 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/.

Ответ 7

Используйте команды из командной строки вашего суперпользователя. Скопируйте 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

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

Ответ 8

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

На этот вопрос отвечает: Нажмите .apk в/system/app/в HTC HERO

Ответ 9

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

Ответ 10

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

Ответ 11

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

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

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

Ответ 12

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

Ответ 13

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

  • Проверьте свободное пространство в разделе /system, используя df из adb shell. Скорее всего, свободное пространство будет меньше размера файла 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, может не помочь в этом сценарии. (N.B.: для этого шага могут потребоваться привилегии ROOT и перезагрузка раздела /system в режиме чтения-записи с использованием mount -o rw, remount/system)

Ответ 14

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