diff --git a/CHANGELOG b/CHANGELOG index ee523014..0921c0d5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ Changelog (English) 1.5.5 Open a shell from Android Terminal Emulator +Added support CentOS 1.5.4 Fixed a problem with user password that contains uppercase letters @@ -323,6 +324,7 @@ Updated list packages of base system installation 1.5.5 Открытие командной оболочки в Android Terminal Emulator +Добавлена поддержка CentOS 1.5.4 Исправлена проблема с установкой пароля, содержащего заглавные буквы diff --git a/README.md b/README.md index eaedc5e3..ebb8c550 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,13 @@ The program interface supports English and Russian. You can manage the process o Installing a new operating system takes about 30 minutes. The recommended minimum size of a disk image is 1024 MB (with LXDE), and without a GUI - 512 MB. When you install Linux on the flash card with the FAT32 file system, the image size should not exceed 4095 MB! After the initial setup the default password for SSH and VNC is changeme. The password can be changed through standard OS tools. #### Features: #### -* Supported distributions: Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, Gentoo, openSUSE, Slackware, RootFS (tgz, tbz2, txz) +* Supported distributions: Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, CentOS, Gentoo, openSUSE, Slackware, RootFS (tgz, tbz2, txz) * Installation type: image file, disk partition, RAM, directory * Supported file systems: ext2, ext3, ext4 * Supported architectures: ARM, ARM64, x86, x86_64, emulation mode (ARM ~ x86) * Control interface: CLI, SSH, VNC, X, framebuffer * Desktop environment: XTerm, LXDE, Xfce, GNOME, KDE, other (manual configuration) -* Supported languages: English, Russian, German, French, Italian, Spanish, Chinese, Vietnamese, Slovak +* Supported languages: English, Russian, German, French, Italian, Spanish, Chinese, Vietnamese, Slovak, Portuguese #### Install #### You can install the app from Google Play: . diff --git a/README.ru.md b/README.ru.md index 80bca22e..aaae8618 100644 --- a/README.ru.md +++ b/README.ru.md @@ -12,13 +12,13 @@ Copyright (C) 2012-2015 Антон Скшидлевский, [GPLv3](http://ope Установка новой ОС занимает около 30 минут. Рекомендованный минимальный размер образа диска без графического интерфейса - 512 МБ, а с графическим интерфейсом - 1024 МБ (для LXDE). При установке ОС в образ на карту памяти с файловой системой FAT32 размер образа не должен превышать 4095 МБ! После начальной установки пароль для доступа по SSH и VNC назначается как "changeme", который можно сменить стандартными средствами ОС. #### Характеристики: #### -* Поддерживаемые дистрибутивы: Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, Gentoo, openSUSE, Slackware, RootFS (tgz, tbz2, txz) +* Поддерживаемые дистрибутивы: Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, CentOS, Gentoo, openSUSE, Slackware, RootFS (tgz, tbz2, txz) * Тип установки: файл образа, раздел диска, оперативная память, директория * Поддерживаемые файловые системы: ext2, ext3, ext4 * Поддерживаемые архитектуры: ARM, ARM64, x86, x86_64, режим эмуляции (ARM ~ x86) * Интерфейс управления: CLI, SSH, VNC, X, фрейм-буфер * Окружение рабочего стола: XTerm, LXDE, Xfce, GNOME, KDE, другое (ручная настройка) -* Поддерживаемые языки: русский, английский, немецкий, французский, итальянский, испанский, китайский, вьетнамский, словацкий +* Поддерживаемые языки: русский, английский, немецкий, французский, итальянский, испанский, китайский, вьетнамский, словацкий, португальский #### Установка #### Вы можете установить это приложение из Google play: . diff --git a/assets/all/share/main.sh b/assets/all/share/main.sh index 9fd7c0b0..d74eddae 100755 --- a/assets/all/share/main.sh +++ b/assets/all/share/main.sh @@ -788,19 +788,10 @@ msg -n "$1 ... " debian|ubuntu|kalilinux) inet_users="${inet_users} messagebus www-data mysql postgres" ;; - archlinux) - inet_users="${inet_users} dbus" - ;; - fedora) + archlinux|fedora|centos) inet_users="${inet_users} dbus" ;; - opensuse) - inet_users="${inet_users} messagebus" - ;; - gentoo) - inet_users="${inet_users} messagebus" - ;; - slackware) + opensuse|gentoo|slackware) inet_users="${inet_users} messagebus" ;; esac @@ -820,7 +811,7 @@ msg -n "$1 ... " debian|ubuntu|kalilinux) echo "LANG=${LOCALE}" > "${CHROOT_DIR}/etc/default/locale" ;; - archlinux) + archlinux|centos) echo "LANG=${LOCALE}" > "${CHROOT_DIR}/etc/locale.conf" ;; fedora) @@ -883,6 +874,19 @@ msg -n "$1 ... " echo "gpgcheck=0" >> "${repo_file}" chmod 644 "${repo_file}" ;; + centos) + chroot_exec -u root "yum-config-manager --disable '*'" >/dev/null + local repo="${SOURCE_PATH%/}/${SUITE}/os/${ARCH}" + local repo_file="${CHROOT_DIR}/etc/yum.repos.d/CentOS-${SUITE}-${ARCH}.repo" + echo "[centos-${SUITE}-${ARCH}]" > "${repo_file}" + echo "name=CentOS ${SUITE} - ${ARCH}" >> "${repo_file}" + echo "failovermethod=priority" >> "${repo_file}" + echo "baseurl=${repo}" >> "${repo_file}" + echo "enabled=1" >> "${repo_file}" + echo "metadata_expire=7d" >> "${repo_file}" + echo "gpgcheck=0" >> "${repo_file}" + chmod 644 "${repo_file}" + ;; opensuse) if [ "${platform}" = "intel" ] then local repo="${SOURCE_PATH%/}/distribution/${SUITE}/repo/oss/" @@ -985,17 +989,15 @@ msg -n "$1 ... " chown -R ${user_id}:${group_id} "${CHROOT_DIR}${user_home}" || true ;; dbus) - case "${DISTRIB}" in - debian|ubuntu|kalilinux|archlinux) + if [ -e "${CHROOT_DIR}/run" ]; then mkdir "${CHROOT_DIR}/run/dbus" || true chmod 755 "${CHROOT_DIR}/run/dbus" - ;; - fedora) + fi + if [ -e "${CHROOT_DIR}/var/run" ]; then mkdir "${CHROOT_DIR}/var/run/dbus" || true chmod 755 "${CHROOT_DIR}/var/run/dbus" - chroot_exec dbus-uuidgen > "${CHROOT_DIR}/etc/machine-id" - ;; - esac + fi + chroot_exec dbus-uuidgen > "${CHROOT_DIR}/etc/machine-id" ;; xorg) # Xwrapper.config @@ -1261,6 +1263,48 @@ msg "Installing additional components: " [ -n "${igrp}" ] && chroot_exec -u root "yum groupinstall "${igrp}" --nogpgcheck --skip-broken -y" chroot_exec -u root "yum clean all" ;; + centos) + local pkgs="" + local igrp="" + for component in ${USE_COMPONENTS} + do + case "${component}" in + desktop) + pkgs="${pkgs} xorg-x11-server-utils xorg-x11-fonts-misc dejavu-*" + case "${DESKTOP_ENV}" in + xterm) + pkgs="${pkgs} xterm" + ;; + lxde) + igrp="lxde-desktop-environment" + ;; + xfce) + igrp="xfce-desktop-environment" + ;; + gnome) + igrp="gnome-desktop-environment" + ;; + kde) + igrp="kde-desktop-environment" + ;; + esac + ;; + ssh) + pkgs="${pkgs} openssh-server" + ;; + vnc) + pkgs="${pkgs} tigervnc-server" + ;; + xserver) + pkgs="${pkgs} xorg-x11-xinit xorg-x11-server-Xorg xorg-x11-drv-fbdev xorg-x11-drv-evdev" + ;; + esac + done + [ -z "${pkgs}" ] && return 1 + chroot_exec -u root "yum install ${pkgs} --nogpgcheck --skip-broken -y" + [ -n "${igrp}" ] && chroot_exec -u root "yum groupinstall "${igrp}" --nogpgcheck --skip-broken -y" + chroot_exec -u root "yum clean all" + ;; opensuse) local pkgs="" for component in ${USE_COMPONENTS} @@ -1527,10 +1571,7 @@ fedora) configure_container qemu msg "Installing base packages: " - chroot_exec /bin/rpm -iv --force --nosignature --nodeps /tmp/*.rpm 1>&3 2>&3 - - msg -n "Updating packages database ... " - chroot_exec /bin/rpm -i --force --nosignature --nodeps --justdb /tmp/*.rpm + chroot_exec /bin/rpm -iv --force --nosignature --nodeps --justdb /tmp/*.rpm 1>&3 2>&3 [ $? -eq 0 ] && msg "done" || msg "fail" msg -n "Clearing cache ... " @@ -1548,6 +1589,75 @@ fedora) exit 0) 1>&3 2>&3 [ $? -ne 0 ] && return 1 ;; +centos) + msg "Installing CentOS distribution: " + + local basic_packages="filesystem audit-libs basesystem bash bzip2-libs ca-certificates centos-release chkconfig coreutils cpio cracklib cracklib-dicts cryptsetup-libs curl cyrus-sasl-lib dbus dbus-libs device-mapper device-mapper-libs diffutils elfutils-libelf elfutils-libs expat file-libs gawk gdbm glib2 glibc glibc-common gmp gnupg2 gpgme grep gzip info keyutils-libs kmod kmod-libs krb5-libs libacl libassuan libattr libblkid libcap libcap-ng libcom_err libcurl libdb libdb-utils libffi libgcc libgcrypt libgpg-error libidn libmount libpwquality libselinux libsemanage libsepol libssh2 libstdc++ libtasn1 libuser libutempter libuuid libverto libxml2 lua ncurses ncurses-base ncurses-libs nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-tools nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pinentry pkgconfig popt pth pygpgme pyliblzma python python-chardet python-iniparse python-kitchen python-libs python-pycurl python-urlgrabber pyxattr qrencode-libs readline rootfiles rpm rpm-build-libs rpm-libs rpm-python sed selinux-policy setup shadow-utils shared-mime-info sqlite sudo systemd systemd-libs tzdata ustr util-linux vim-minimal which xz-libs yum yum-metadata-parser yum-plugin-fastestmirror yum-utils zlib" + + local repo="${SOURCE_PATH%/}/${SUITE}/os/${ARCH}" + + msg "Repository: ${repo}" + + msg -n "Preparing for deployment ... " + (set -e + cd "${CHROOT_DIR}" + mkdir etc + echo "root:x:0:0:root:/root:/bin/bash" > etc/passwd + echo "root:x:0:" > etc/group + touch etc/fstab + mkdir tmp; chmod 01777 tmp + exit 0) + [ $? -eq 0 ] && msg "done" || { msg "fail"; return 1; } + + msg -n "Retrieving packages list ... " + local pkg_list="${CHROOT_DIR}/tmp/packages.list" + (set -e + repodata=$(wget -q -O - "${repo}/repodata/repomd.xml" | sed -n '/]*href="\([^\"]*\-primary\.xml\.gz\)".*$/\1/p') + [ -z "${repodata}" ] && exit 1 + wget -q -O - "${repo}/${repodata}" | gzip -dc | sed -n '/]*href="\([^\"]*\)".*$/\1/p' > "${pkg_list}" + exit 0) + [ $? -eq 0 ] && msg "done" || { msg "fail"; return 1; } + + msg "Retrieving base packages: " + for package in ${basic_packages} + do + msg -n "${package} ... " + local pkg_url=$(grep -m1 -e "^.*/${package}-[0-9][0-9\.\-].*\.rpm$" "${pkg_list}") + test "${pkg_url}" || { msg "skip"; continue; } + local pkg_file=$(basename "${pkg_url}") + # download + for i in 1 2 3 + do + [ ${i} -gt 1 ] && sleep 30s + wget -q -c -O "${CHROOT_DIR}/tmp/${pkg_file}" "${repo}/${pkg_url}" + [ $? -eq 0 ] && break + done + # unpack + (cd "${CHROOT_DIR}"; rpm2cpio "${CHROOT_DIR}/tmp/${pkg_file}" | cpio -idmu) + [ $? -eq 0 ] && msg "done" || { msg "fail"; return 1; } + done + + configure_container qemu + + msg "Installing base packages: " + chroot_exec /bin/rpm -iv --force --nosignature --nodeps --justdb /tmp/*.rpm 1>&3 2>&3 + [ $? -eq 0 ] && msg "done" || msg "fail" + + msg -n "Clearing cache ... " + rm -rf "${CHROOT_DIR}"/tmp/* + [ $? -eq 0 ] && msg "done" || msg "fail" + + mount_container + + configure_container dns mtab misc groups repository + + msg "Installing minimal environment: " + (set -e + chroot_exec -u root 'yum groupinstall "Minimal Install" --nogpgcheck --skip-broken -y --exclude openssh-server' + chroot_exec -u root 'yum clean all' + exit 0) 1>&3 2>&3 + [ $? -ne 0 ] && return 1 +;; opensuse) msg "Installing openSUSE distribution: " diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml index 1789f639..330191f6 100644 --- a/res/values-de/arrays.xml +++ b/res/values-de/arrays.xml @@ -69,6 +69,15 @@ X Server + + + + Desktop Oberfläche + SSH Server + VNC Server + X Server + + diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml index a7f84843..ba3b448d 100644 --- a/res/values-es/arrays.xml +++ b/res/values-es/arrays.xml @@ -69,6 +69,15 @@ X server + + + + Ambiente Escritorio + servidor SSH + servidor VNC + X server + + diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml index b1921232..dee0b929 100644 --- a/res/values-fr/arrays.xml +++ b/res/values-fr/arrays.xml @@ -69,6 +69,15 @@ Serveur X + + + + Environnement Bureau + Serveur SSH + Serveur VNC + Serveur X + + diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml index d0fe93ca..0ea86bde 100644 --- a/res/values-it/arrays.xml +++ b/res/values-it/arrays.xml @@ -69,6 +69,15 @@ Server X + + + + Ambiente desktop + Server SSH + Server VNC + Server X + + diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml index 69feaccd..ac1a37ef 100644 --- a/res/values-pt/arrays.xml +++ b/res/values-pt/arrays.xml @@ -69,6 +69,15 @@ Servidor X + + + + Ambiente Desktop + Servidor SSH + Servidor VNC + Servidor X + + diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml index 0f3d1f62..c2a25d22 100644 --- a/res/values-ru/arrays.xml +++ b/res/values-ru/arrays.xml @@ -69,6 +69,15 @@ X сервер + + + + Окружение рабочего стола + SSH сервер + VNC сервер + X сервер + + diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 103cbb06..210bbef0 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -29,8 +29,8 @@ Монтирование Запустить Остановить - Смонтировать GNU/Linux и запустить сервисы? - Остановить сервисы и размонтировать GNU/Linux? + Смонтировать контейнер и запустить сервисы? + Остановить сервисы и размонтировать контейнер? Имя профиля Имя профиля Импортировать профиль @@ -68,7 +68,7 @@ Показывать иконку Отображать значок на панели уведомлений Автозапуск - Автоматически запускать GNU/Linux при загрузке Android + Автоматически запускать контейнер при загрузке Android Команда терминала Команда терминала Рабочее окружение @@ -99,7 +99,7 @@ Выполнить переконфигурацию GNU/Linux системы Выполнить переконфигурацию GNU/Linux системы? Экспортировать - Экспортировать GNU/Linux как rootfs-архив + Экспортировать контейнер как rootfs-архив Развертывание Дистрибутив Дистрибутив diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml index 0ea70745..8e7baa14 100644 --- a/res/values-sk/arrays.xml +++ b/res/values-sk/arrays.xml @@ -30,18 +30,28 @@ Pozastaviť Zastaviť + + + + Pracovné prostredie Server SSH Server VNC X server + + + Pracovné prostredie Server SSH Server VNC X server + + + Pracovné prostredie Server SSH @@ -49,30 +59,54 @@ X server Súčasti distribúcie Kali + + + Pracovné prostredie Server SSH Server VNC X server + + + + + Pracovné prostredie + Server SSH + Server VNC + X server + + + + Pracovné prostredie Server SSH Server VNC X server + + + Pracovné prostredie Server SSH Server VNC X server + + + Pracovné prostredie Server SSH Server VNC X server + + + Server SSH diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml index 5b62d61c..3df2ea70 100644 --- a/res/values-vi/arrays.xml +++ b/res/values-vi/arrays.xml @@ -69,6 +69,15 @@ Máy chủ X + + + + Pracovné prostredie + Server SSH + Server VNC + X server + + diff --git a/res/values-zh/arrays.xml b/res/values-zh/arrays.xml index cd356162..6f027f79 100644 --- a/res/values-zh/arrays.xml +++ b/res/values-zh/arrays.xml @@ -69,6 +69,15 @@ X11 服务器 + + + + 桌面环境 + SSH 服务器 + VNC 服务器 + X11 服务器 + + diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 0a88a0a9..58711b5e 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -234,6 +234,7 @@ ubuntu kalilinux fedora + centos archlinux gentoo opensuse @@ -245,6 +246,7 @@ Ubuntu Kali Linux Fedora + CentOS Arch Linux Gentoo openSUSE @@ -391,6 +393,30 @@ X server + + + + 7 + + + armhfp + aarch64 + i386 + x86_64 + + + desktop + ssh + vnc + xserver + + + Desktop Environment + SSH server + VNC server + X server + + diff --git a/res/values/preferences.xml b/res/values/preferences.xml index 636e4110..12452794 100644 --- a/res/values/preferences.xml +++ b/res/values/preferences.xml @@ -104,6 +104,15 @@ http://dl.fedoraproject.org/pub/ i386 + + 7 + + http://mirror.centos.org/altarch/ + armhfp + + http://mirror.centos.org/altarch/ + i386 + latest diff --git a/res/values/strings.xml b/res/values/strings.xml index 7ea51fae..7a69f688 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -29,8 +29,8 @@ Mounts Start Stop - Mount GNU/Linux system and start services? - Stop services and unmount GNU/Linux system? + Mount the container and start services? + Stop services and unmount the container? Profile name Profile name Import profile @@ -68,7 +68,7 @@ Show icon Display icon in notification bar Autostart - Automatically run GNU/Linux when starting Android + Automatically run the container when starting Android Terminal command Terminal command Operating environment @@ -99,7 +99,7 @@ Start GNU/Linux reconfiguration Start reconfiguration of GNU/Linux system? Export - Export GNU/Linux as rootfs archive + Export the container as rootfs archive Deploy Distribution Distribution diff --git a/src/ru/meefik/linuxdeploy/EnvUtils.java b/src/ru/meefik/linuxdeploy/EnvUtils.java index fa4eb845..8cddf611 100644 --- a/src/ru/meefik/linuxdeploy/EnvUtils.java +++ b/src/ru/meefik/linuxdeploy/EnvUtils.java @@ -448,7 +448,7 @@ public static boolean updateConf(Context c) { lines.add("TARGET_PATH=\"" + PrefStore.getTargetPath(c) + "\""); lines.add("DISK_SIZE=\"" + PrefStore.getDiskSize(c) + "\""); lines.add("FS_TYPE=\"" + PrefStore.getFilesystem(c) + "\""); - lines.add("DEPLOY_TYPE=\"" + PrefStore.getTargetType(c) + "\""); + lines.add("TARGET_TYPE=\"" + PrefStore.getTargetType(c) + "\""); lines.add("DISTRIB=\"" + PrefStore.getDistribution(c) + "\""); lines.add("ARCH=\"" + PrefStore.getArchitecture(c) + "\""); lines.add("SUITE=\"" + PrefStore.getSuite(c) + "\"");