Ошибка, разархивировавшая файл через ksh, разархивируйте работы через удар

Наименее болезненный способ установки утилит Linux на устройстве Android - это установить целое распределение в подкаталоге. «Нормальные» распределения (Debian, Arch, Fedora и т. Д.) Указывают двоичные файлы, которые динамически связаны с Glibc, который Android не обеспечивает. Они должны быть выполнены с погрузчиком ( /lib/ld-linux_so ) Glibc.

Простой способ настройки такой системы - использовать Debian DEBOOSTRAP для создания начального дерева каталогов Debian, перенесите его на устройство Android, а затем на установочные пакеты с помощью Get и другие стандартные инструменты Debian. Есть пара страниц по теме на Debian Wiki: ChrootonAndroid , HotwodeBianinannandroid .

  1. Во-первых, установите Debootstrap. На Debian или производной, просто установите пакет Debootstrap . На некоторых других вариантах Linux или другого Unix просто захватите Tarball Tarball или проверьте его из GIT: это только сценарий оболочки и поддерживает файлы данных.

  2. Определите, поддерживает ли ваше устройство аппаратную плавающую точку . Если это не, замените ARMHF на ARREL ниже. Вы можете сказать, проверив / proc / cpuinfo под Android (или что-то еще, используя ядро ​​Linux): у вас должен быть ARMV7 (или ARMV8) с функциями Thumbee и VFPV3 .

  3. Если у вас его еще нет, установите Busybox на устройстве Android. Хотя он не является строго необходимым, это придет удобно ниже. Вы можете извлечь Busybox-Static двоичный пакет , извлеките исполняемый файл Batebox с AR P Busybox-Static _ * _ ARMHF.DEB Data.tar.gz | tar -xzf - ./bin/busybox, и перенести Busybox Businober на устройстве Android. Ниже я предполагаю, что Busybox находится в / поставщиком / Bin / Busybox .

  4. Если ваше устройство Android может монтировать карту SD, которая отформатирована как Ext2 / Ext3 / Ext4 (или любая другая файловая система, которая поддерживает разрешения Unix, то есть не FAT), установите SD-карту на вашем ПК Unix и запустите следующую команду Как root:

     debootstrap itarch = ARMHF - foreign hteezy / Media / SDCard / Debian http://http.debian.net/debian
     

    Если нет, запустите следующую команду как root (или под fakeroot, если у вас есть):

     SH -C 'Debootstrap - TMP = ARMHF - FORESING / TMP / Debian http: // http.  Debian.net/debian && tar -zcf /tmp/debian.tar.gz -c / tmp debian '
     

    Теперь вам нужно передавать /tmp/debian.tar.gz на ваше устройство Android. Вы можете сделать это через ADB ( adb push /tmp/debian.tar.gz / ) или любой другой способ, которым работает для вас, то распаковываете тарлбол (используйте BusyBox TAR ) :

     TAR -ZXVF /Debian.tar.gz
     
  5. Настройте комфортную среду для запуска программ Linux. Легкий способ - запустить их в Chroot . Я предполагаю, что система Debian находится в / Media / SDCard / Debian и что у вас есть BusyBox. Создайте сценарий оболочки:

     #! / Поставщик / bin / busybox sh
    Linux_Root = / Media / SDCard / Debian
    alias bb = / vendor / bin / busybox
    unset ld_library_path path old
    Export Path = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
     # Bind-Mount FileSystems Если еще не сделано
    для d в / dev / media / proc / sys;  делать
      BB GreeP -q "$ Linux_root $ d" / proc / mounts ||  BB Mount -O RBind "$ D" $ linux_root / $ d "
    Готово
    для d в / data / system;  делать
      если !  BB GreeP -q "$ linux_root $ d" / proc / mounts;  потом
      mkdir -p "$ Linux_root / Android / $ D"
      BB Mount -O RBind «$ D» $ Linux_root / Android / $ D "
      фигурировать
    Готово
    EXEC BB CHROOT "$ LINUX_ROOT" / BIN / BASH "$ @"
     

    Сделайте этот файл исполняемого сценария и поместите его в / Vendor / Bin или где-либо еще на пути Android. Прежде чем вы сможете полностью насладиться установкой Linux, вам нужно завершить работу Debotstrap: в Chroot, запустить

     / Debootstrap / Debootstrap --second-Stage
     

0
02.07.2014, 11:02
1 ответ

Для тех, кто может наткнуться на подобную проблему: zip-файл был обработан Maven, который попытался использовать фильтрацию. Как следует из документации Maven, такая фильтрация может привести к повреждению двоичных файлов. После исключения zip-файлов из фильтрации Maven, распаковка работала нормально.

1
28.01.2020, 02:52

Теги

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