Skip to content

Commit

Permalink
Release 2.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
meefik committed Aug 13, 2019
1 parent 4ed8264 commit c421209
Show file tree
Hide file tree
Showing 46 changed files with 225 additions and 134 deletions.
22 changes: 18 additions & 4 deletions CHANGELOG.md
Expand Up @@ -6,12 +6,26 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [Unreleased]

## [2.4.0] - 2019-08-12
### Added
- Added support Alpine Linux
- Added support for Slackware x86_64
- Added built-in binaries for 64-bit architecture
- Added NET_TRIGGER in the properties dialog

### Changed
- Added executable permission for application directory
- Updated built-in busybox to v1.30.1

### Removed
- End of support for Gentoo

## [2.3.1] - 2019-07-29
### Added
- Added support Debian 10 (buster).
- Added support Debian 10 (buster)

### Fixed
- Problem with network trigger on Android 7+.
- Fixed problem with network trigger on Android 7+

## [2.3.0] - 2019-03-02
### Changed
Expand All @@ -28,8 +42,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Replaced by dbus-run-session to dbus-launch

### Fixed
- Problem with running "am" via unchroot (issue #987)
- Problem with color in the list of mount points (issue #1018)
- Fixed problem with running "am" via unchroot (issue #987)
- Fixed problem with color in the list of mount points (issue #1018)

## [2.2.1] - 2018-10-29
### Changed
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -17,10 +17,10 @@ The app is available for download in Google Play and GitHub.

## Features

- Supported distributions: Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, CentOS, Gentoo, Slackware, RootFS (tgz, tbz2, txz)
- Supported distributions: Debian, Ubuntu, Kali Linux, Arch Linux, Fedora, CentOS, Slackware, Alpine Linux, other (from rootfs.tar)
- Installation type: image file, directory, disk partition, RAM
- Supported file systems: ext2, ext3, ext4
- Supported architectures: ARM, ARM64, x86, x86_64, emulation mode (ARM ~ x86)
- Supported architectures: arm, arm64, x86, x86_64, emulation mode (ARM ~ x86)
- Control interface: CLI, SSH, VNC, X11, Framebuffer
- Desktop environment: XTerm, LXDE, Xfce, MATE, other (manual configuration)
- Supported languages: multilingual interface
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Expand Up @@ -8,8 +8,8 @@ android {
applicationId 'ru.meefik.linuxdeploy'
minSdkVersion 15
targetSdkVersion 28
versionCode 247
versionName "2.3.1"
versionCode 248
versionName "2.4.0"
}
buildTypes {
release {
Expand Down
Binary file modified app/src/main/assets/bin/arm/busybox
Binary file not shown.
Binary file modified app/src/main/assets/bin/arm/proot
Binary file not shown.
Binary file modified app/src/main/assets/bin/arm/qemu-i386-static
Binary file not shown.
Binary file added app/src/main/assets/bin/arm_64/busybox
Binary file not shown.
Binary file added app/src/main/assets/bin/arm_64/proot
Binary file not shown.
Binary file added app/src/main/assets/bin/arm_64/qemu-x86_64-static
Binary file not shown.
Binary file removed app/src/main/assets/bin/intel/busybox
Binary file not shown.
Binary file removed app/src/main/assets/bin/intel/proot
Binary file not shown.
Binary file removed app/src/main/assets/bin/intel/qemu-arm-static
Binary file not shown.
Binary file added app/src/main/assets/bin/x86/busybox
Binary file not shown.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file added app/src/main/assets/bin/x86/proot
Binary file not shown.
Binary file added app/src/main/assets/bin/x86/qemu-arm-static
Binary file not shown.
File renamed without changes.
Binary file added app/src/main/assets/bin/x86_64/proot
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion app/src/main/assets/env
Submodule env updated 51 files
+12 −7 README.md
+26 −16 cli.sh
+2 −2 include/bootstrap/alpine/deploy.conf
+67 −0 include/bootstrap/alpine/deploy.sh
+14 −20 include/bootstrap/archlinux/deploy.sh
+13 −6 include/bootstrap/centos/deploy.sh
+220 −98 include/bootstrap/debian/debootstrap/debootstrap
+323 −307 include/bootstrap/debian/debootstrap/functions
+3 −3 include/bootstrap/debian/debootstrap/scripts/aequorea
+1 −0 include/bootstrap/debian/debootstrap/scripts/artful
+1 −0 include/bootstrap/debian/debootstrap/scripts/bookworm
+1 −0 include/bootstrap/debian/debootstrap/scripts/breezy
+1 −0 include/bootstrap/debian/debootstrap/scripts/cosmic
+1 −0 include/bootstrap/debian/debootstrap/scripts/dapper
+220 −0 include/bootstrap/debian/debootstrap/scripts/debian-common
+1 −0 include/bootstrap/debian/debootstrap/scripts/disco
+4 −3 include/bootstrap/debian/debootstrap/scripts/edgy
+0 −1 include/bootstrap/debian/debootstrap/scripts/etch
+18 −0 include/bootstrap/debian/debootstrap/scripts/etch
+1 −1 include/bootstrap/debian/debootstrap/scripts/etch-m68k
+3 −3 include/bootstrap/debian/debootstrap/scripts/feisty
+63 −27 include/bootstrap/debian/debootstrap/scripts/gutsy
+10 −208 include/bootstrap/debian/debootstrap/scripts/kali
+1 −0 include/bootstrap/debian/debootstrap/scripts/kali-last-snapshot
+1 −1 include/bootstrap/debian/debootstrap/scripts/lenny
+2 −0 include/bootstrap/debian/debootstrap/scripts/potato
+2 −0 include/bootstrap/debian/debootstrap/scripts/sarge
+1 −1 include/bootstrap/debian/debootstrap/scripts/sarge.fakechroot
+9 −207 include/bootstrap/debian/debootstrap/scripts/sid
+1 −1 include/bootstrap/debian/debootstrap/scripts/squeeze
+2 −0 include/bootstrap/debian/debootstrap/scripts/woody
+2 −0 include/bootstrap/debian/debootstrap/scripts/woody.buildd
+9 −1 include/bootstrap/debian/deploy.sh
+19 −10 include/bootstrap/fedora/deploy.sh
+0 −120 include/bootstrap/gentoo/deploy.sh
+1 −1 include/bootstrap/kali/deploy.conf
+3 −0 include/bootstrap/kali/deploy.sh
+18 −12 include/bootstrap/slackware/deploy.sh
+3 −0 include/bootstrap/ubuntu/deploy.sh
+32 −19 include/core/aid/deploy.sh
+7 −5 include/core/locale/deploy.sh
+1 −1 include/core/profile/deploy.sh
+1 −5 include/desktop/dbus/deploy.sh
+1 −5 include/desktop/lxde/deploy.sh
+1 −5 include/desktop/mate/deploy.sh
+1 −5 include/desktop/xfce/deploy.sh
+1 −5 include/desktop/xterm/deploy.sh
+1 −5 include/extra/pulse/deploy.sh
+10 −7 include/extra/ssh/deploy.sh
+1 −21 include/graphics/fb/deploy.sh
+1 −12 include/graphics/vnc/deploy.sh
+25 −0 make_rootfs.sh
33 changes: 25 additions & 8 deletions app/src/main/java/ru/meefik/linuxdeploy/EnvUtils.java
Expand Up @@ -319,21 +319,33 @@ static boolean updateEnv(final Context c) {

// extract bin assets
if (!extractDir(c, PrefStore.getBinDir(c), "bin/all", "")) return false;
if (!extractDir(c, PrefStore.getBinDir(c), "bin/" + PrefStore.getArch(), "")) return false;
String arch = PrefStore.getArch();
switch (arch) {
case "arm":
if (!extractDir(c, PrefStore.getBinDir(c), "bin/arm", "")) return false;
break;
case "arm_64":
if (!extractDir(c, PrefStore.getBinDir(c), "bin/arm", "")) return false;
if (!extractDir(c, PrefStore.getBinDir(c), "bin/arm_64", "")) return false;
break;
case "x86":
if (!extractDir(c, PrefStore.getBinDir(c), "bin/x86", "")) return false;
break;
case "x86_64":
if (!extractDir(c, PrefStore.getBinDir(c), "bin/x86", "")) return false;
if (!extractDir(c, PrefStore.getBinDir(c), "bin/x86_64", "")) return false;
break;
}

// extract web assets
if (!extractDir(c, PrefStore.getWebDir(c), "web", "")) return false;

// make linuxdeploy script
if (!makeMainScript(c)) return false;

// set executable bin directory
File binDir = new File(PrefStore.getBinDir(c));
setPermissions(binDir, true);

// set executable cgi-bin directory
File cgiDir = new File(PrefStore.getWebDir(c) + "/cgi-bin");
setPermissions(cgiDir, true);
// set executable app directory
File appDir = new File(PrefStore.getEnvDir(c) + "/..");
appDir.setExecutable(true, false);

// make config directory
File configDir = new File(PrefStore.getConfigDir(c));
Expand All @@ -343,6 +355,10 @@ static boolean updateEnv(final Context c) {
File tmpDir = new File(PrefStore.getTmpDir(c));
tmpDir.mkdirs();

// set executable env directory
File binDir = new File(PrefStore.getEnvDir(c));
setPermissions(binDir, true);

// create .nomedia
File noMedia = new File(PrefStore.getEnvDir(c) + "/.nomedia");
try {
Expand Down Expand Up @@ -537,6 +553,7 @@ static boolean telnetd(Context c, String cmd) {
params.add("export TERM=\"xterm\"");
params.add("export PS1=\"\\$ \"");
params.add("export HOME=\"" + PrefStore.getEnvDir(c) + "\"");
params.add("export TMPDIR=\"" + PrefStore.getTmpDir(c) + "\"");
params.add("cd \"$HOME\"");
params.add("telnetd" + args);
}
Expand Down
18 changes: 7 additions & 11 deletions app/src/main/java/ru/meefik/linuxdeploy/PrefStore.java
Expand Up @@ -398,10 +398,8 @@ static Boolean isStealth(Context c) {
* @return path, e.g. ${ENV_DIR}/bin
*/
static String getPath(Context c) {
String binDir = getBinDir(c);
String path = SETTINGS.get(c, "path");
if (path.isEmpty()) path = binDir;
else path = path + ":" + binDir;
if (path.isEmpty()) path = getBinDir(c);
return path;
}

Expand Down Expand Up @@ -659,24 +657,22 @@ static String generatePassword() {
* Get hardware architecture
*
* @param arch unformated architecture
* @return intel, arm or mips
* @return arm, arm_64, x86, x86_64
*/
static String getArch(String arch) {
String march = "unknown";
if (arch.length() > 0) {
char a = arch.toLowerCase().charAt(0);
switch (a) {
case 'a':
if (arch.equals("amd64"))
march = "intel";
if (arch.equals("amd64")) march = "x86_64";
else if (arch.contains("64")) march = "arm_64";
else march = "arm";
break;
case 'm':
march = "mips";
break;
case 'i':
case 'x':
march = "intel";
if (arch.contains("64")) march = "x86_64";
else march = "x86";
break;
}
}
Expand All @@ -686,7 +682,7 @@ static String getArch(String arch) {
/**
* Get current hardware architecture
*
* @return intel, arm or mips
* @return arm, arm_64, x86, x86_64
*/
static String getArch() {
return getArch(System.getProperty("os.arch"));
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/ru/meefik/linuxdeploy/PropertiesStore.java
Expand Up @@ -13,8 +13,8 @@ class PropertiesStore extends ParamUtils {
public static final String name = "properties_conf";
private static final String[] params = {"method", "distrib", "arch", "suite", "source_path",
"target_type", "target_path", "disk_size", "fs_type", "user_name", "user_password",
"privileged_users", "dns", "locale", "init", "init_path", "init_level", "init_user",
"init_async", "ssh_port", "ssh_args", "pulse_host", "pulse_port", "graphics",
"privileged_users", "locale", "dns", "net_trigger", "init", "init_path", "init_level",
"init_user", "init_async", "ssh_port", "ssh_args", "pulse_host", "pulse_port", "graphics",
"vnc_display", "vnc_depth", "vnc_dpi", "vnc_width", "vnc_height", "vnc_args",
"x11_display", "x11_host", "x11_sdl", "x11_sdl_delay", "fb_display", "fb_dev",
"fb_input", "fb_args", "fb_refresh", "fb_freeze", "desktop", "mounts", "include"};
Expand Down
14 changes: 7 additions & 7 deletions app/src/main/java/ru/meefik/linuxdeploy/RepositoryActivity.java
Expand Up @@ -57,7 +57,7 @@ private void importDialog(final Map<String, String> profile) {
.setCancelable(false)
.setNegativeButton(android.R.string.no,
(dialog13, whichButton) -> dialog13.cancel());
if (profile.get("PROTECTED") != null && !isDonated()) {
if (!isDonated()) {
dialog.setPositiveButton(R.string.repository_purchase_button,
(dialog12, whichButton) -> startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("https://play.google.com/store/apps/details?id=ru.meefik.donate"))));
Expand Down Expand Up @@ -117,6 +117,9 @@ public View getView(int position, View convertView, ViewGroup parent) {
int iconRes = R.raw.linux;
if (type != null) {
switch (type) {
case "alpine":
iconRes = R.raw.alpine;
break;
case "archlinux":
iconRes = R.raw.archlinux;
break;
Expand All @@ -129,11 +132,8 @@ public View getView(int position, View convertView, ViewGroup parent) {
case "fedora":
iconRes = R.raw.fedora;
break;
case "gentoo":
iconRes = R.raw.gentoo;
break;
case "kalilinux":
iconRes = R.raw.kalilinux;
case "kali":
iconRes = R.raw.kali;
break;
case "slackware":
iconRes = R.raw.slackware;
Expand Down Expand Up @@ -249,7 +249,7 @@ protected void onPostExecute(Boolean success) {
private void downloadUrl(String url) throws IOException {
BufferedReader reader = null;
try {
URL u = new URL(new URL(url), "index.gz");
URL u = new URL(url + "/index.gz");
reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(u.openStream())));
String line;
Map<String, String> map = new HashMap<>();
Expand Down
Binary file added app/src/main/res/raw/alpine.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed app/src/main/res/raw/gentoo.png
Binary file not shown.
File renamed without changes
2 changes: 1 addition & 1 deletion app/src/main/res/values-de/strings.xml
Expand Up @@ -56,7 +56,7 @@
<string name="ssh_preferences">SSH</string>
<string name="vnc_preferences">VNC</string>
<string name="fb_preferences">Framebuffer</string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="http://meefik.ru">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="https://meefik.github.io">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="menu_install">Installieren</string>
<string name="menu_configure">Configure</string>
<string name="dialog_title_fb_args_preference">FB: X Eigenschaften</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-es/strings.xml
Expand Up @@ -80,7 +80,7 @@
<string name="vnc_preferences">VNC</string>
<string name="fb_preferences">Framebuffer</string>
<string name="help_text">\n<b>Help</b><![CDATA[\n\nThis application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nProcedure:\n1. Get superuser privileges (root).\n2. Check the connection to Internet.\n3. Specify the installation options.\n4. Start the installation (\"Menu => Install\").\n5. Wait until the installation is complete.\n6. Tap \"START\" button to run the container.\n7. Connect to the container through CLI, SSH, VNC, or others.\n\nFor more information, see \"About\".]]></string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="http://meefik.ru">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="https://meefik.github.io">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="menu_configure">Configurar</string>
<string name="menu_install">Instalar</string>
<string name="summary_debug_mode_preference">Mostrar información de depuración</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-fr/strings.xml
Expand Up @@ -80,7 +80,7 @@
<string name="vnc_preferences">VNC</string>
<string name="fb_preferences">Tampon de trame</string>
<string name="help_text">\n<b>Help</b><![CDATA[\n\nThis application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nProcedure:\n1. Get superuser privileges (root).\n2. Check the connection to Internet.\n3. Specify the installation options.\n4. Start the installation (\"Menu => Install\").\n5. Wait until the installation is complete.\n6. Tap \"START\" button to run the container.\n7. Connect to the container through CLI, SSH, VNC, or others.\n\nFor more information, see \"About\".]]></string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="http://meefik.ru">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="https://meefik.github.io">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="menu_configure">Configurer</string>
<string name="menu_install">Installer</string>
<string name="summary_debug_mode_preference">Affiche les informations de débugage</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-in/strings.xml
Expand Up @@ -306,6 +306,6 @@
<string name="summary_fb_refresh_preference">"Paksa refresh framebuffer"</string>

<string name="help_text">"\n<b>Bantuan</b>\n\nAplikasi ini untuk menginstal distribusi GNU/Linux yang dipilih dan menjalankannya dalam container chroot.\n\nProsedur:\n1. Dapatkan hak istimewa superuser (root).\n2. Periksa koneksi Internet.\n3. Tentukan pilihan instalasi.\n4. Jalankan instalasi (\"Menu =&gt; Install\").\n5. Tunggu sampai penginstalan selesai.\n6. Ketuk tombol \"START\" untuk menjalankan container.\n7. Sambungkan melalui CLI, SSH, VNC, atau lainnya.\n\nUntuk informasi lebih lanjut, lihat \"Tentang\"."</string>
<string name="about_text">"Aplikasi ini untuk menginstal distribusi GNU/Linux yang dipilih dan menjalankannya dalam container chroot.\n\nUntuk informasi lebih lanjut, lihat <a href="https://github.com/meefik/linuxdeploy">halaman project</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> atau <a href="http://meefik.ru">situs pengembang</a>.\n\n© 2012-2019 Anton Skshidlevsky, GPLv3"</string>
<string name="about_text">"Aplikasi ini untuk menginstal distribusi GNU/Linux yang dipilih dan menjalankannya dalam container chroot.\n\nUntuk informasi lebih lanjut, lihat <a href="https://github.com/meefik/linuxdeploy">halaman project</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> atau <a href="https://meefik.github.io">situs pengembang</a>.\n\n© 2012-2019 Anton Skshidlevsky, GPLv3"</string>

</resources>
2 changes: 1 addition & 1 deletion app/src/main/res/values-it/strings.xml
Expand Up @@ -80,7 +80,7 @@
<string name="vnc_preferences">VNC</string>
<string name="fb_preferences">Framebuffer</string>
<string name="help_text">\n<b>Help</b><![CDATA[\n\nThis application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nProcedure:\n1. Get superuser privileges (root).\n2. Check the connection to Internet.\n3. Specify the installation options.\n4. Start the installation (\"Menu => Install\").\n5. Wait until the installation is complete.\n6. Tap \"START\" button to run the container.\n7. Connect to the container through CLI, SSH, VNC, or others.\n\nFor more information, see \"About\".]]></string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="http://meefik.ru">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="about_text">This application installs the selected GNU/Linux distribution and executes it in a chroot-container.\n\nFor more information see <a href="https://github.com/meefik/linuxdeploy">project page</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">forum</a> or <a href="https://meefik.github.io">developer site</a>.\n\n© 2012–2019 Anton Skshidlevsky, GPLv3</string>
<string name="menu_configure">Configura</string>
<string name="menu_install">Installa</string>
<string name="summary_debug_mode_preference">Mostra informazioni di debug</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-ko/strings.xml
Expand Up @@ -300,6 +300,6 @@
<string name="summary_fb_refresh_preference">강제로 Framebuffer 새로고침</string>

<string name="help_text">\n<b>도움말</b>\n\n이 응용 프로그램은 GNU/Linux 배포판을 설치하고 chroot로 마운트 하는 프로그램 입니다.\n\n순서 :\n1. 루트 권한을 허용해 주세요. (루팅해야 합니다.)\n2. <a href="https://play.google.com/store/apps/details?id=ru.meefik.busybox">이 경로</a>를 통해 BusyBox를 설치하세요. (반드시 이 BusyBox로 설치하셔야 합니다.)\n3. 인터넷 연결을 확인하세요.\n4. 밑에 있는 다운로드 아이콘을 눌러서 설치 환경을 설정하세요.\n5. 설치버튼을 누르세요.\n6. 설치가 모두 다되는동안 기다리세요.\n7. \"START\" 버튼을 눌러서 시작하세요.\n8. CLI, SSH, VNC 등으로 리눅스에 연결하세요.\n\n자세한 내용은 \"정보\" 를 참고해 주세요.\n\n만약 설치 및 실행하는데 오류가 발생한다면 <a href="https://github.com/meefik/linuxdeploy/wiki/%EB%AC%B8%EC%A0%9C%EB%A5%BC-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95">이 링크</a>로 가셔서 문제 해결방법을 보세요.\n\n버그 신고는 <a href="https://github.com/meefik/linuxdeploy/issues">여기</a>(한글가능, Github 아이디 필요) 로 해 주세요.</string>
<string name="about_text">이 응용 프로그램은 GNU/Linux 배포판을 설치하고 chroot로 마운트 하는 프로그램 입니다.\n\n자세한 내용은 <a href="https://github.com/meefik/linuxdeploy">프로젝트 사이트</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">포럼(러시아어)</a> 또는 <a href="http://meefik.ru">개발자 사이트(러시아어)</a> 를 확인하세요.\n\n&#169; 2012&#8211;2019 Anton Skshidlevsky, GPLv3</string>
<string name="about_text">이 응용 프로그램은 GNU/Linux 배포판을 설치하고 chroot로 마운트 하는 프로그램 입니다.\n\n자세한 내용은 <a href="https://github.com/meefik/linuxdeploy">프로젝트 사이트</a>, <a href="http://4pda.ru/forum/index.php?showtopic=378043">포럼(러시아어)</a> 또는 <a href="https://meefik.github.io">개발자 사이트(러시아어)</a> 를 확인하세요.\n\n&#169; 2012&#8211;2019 Anton Skshidlevsky, GPLv3</string>

</resources>

0 comments on commit c421209

Please sign in to comment.