mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-08-14 10:27:29 +00:00
Compare commits
19 Commits
manager-v4
...
manager-v4
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0a0ad9a184 | ||
![]() |
234bead59e | ||
![]() |
76de310986 | ||
![]() |
817f050bcd | ||
![]() |
60ae685d1e | ||
![]() |
4c7bdbb284 | ||
![]() |
435251ca41 | ||
![]() |
324a0dd38f | ||
![]() |
cc77d93918 | ||
![]() |
0ea7d8bd8c | ||
![]() |
849b217143 | ||
![]() |
9af6efba59 | ||
![]() |
079d6f06ef | ||
![]() |
9cf0757689 | ||
![]() |
b54c438948 | ||
![]() |
c3ff4bfdad | ||
![]() |
5d62e066e2 | ||
![]() |
e94219c5a3 | ||
![]() |
8ed9634adf |
@@ -8,8 +8,8 @@ android {
|
||||
applicationId "com.topjohnwu.magisk"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 25
|
||||
versionCode 24
|
||||
versionName "4.2.5"
|
||||
versionCode 28
|
||||
versionName "4.3.1"
|
||||
jackOptions {
|
||||
enabled true
|
||||
jackInProcess true
|
||||
@@ -47,10 +47,10 @@ repositories {
|
||||
dependencies {
|
||||
compile fileTree(include: ['*.jar'], dir: 'libs')
|
||||
|
||||
compile 'com.android.support:recyclerview-v7:25.1.1'
|
||||
compile 'com.android.support:cardview-v7:25.1.1'
|
||||
compile 'com.android.support:design:25.1.1'
|
||||
compile 'com.android.support:support-v4:25.1.1'
|
||||
compile 'com.android.support:recyclerview-v7:25.3.1'
|
||||
compile 'com.android.support:cardview-v7:25.3.1'
|
||||
compile 'com.android.support:design:25.3.1'
|
||||
compile 'com.android.support:support-v4:25.3.1'
|
||||
compile 'com.jakewharton:butterknife:8.5.1'
|
||||
compile 'com.github.clans:fab:1.6.4'
|
||||
compile 'com.thoughtbot:expandablerecyclerview:1.4'
|
||||
|
@@ -1,21 +1,20 @@
|
||||
#!/system/bin/sh
|
||||
|
||||
[ -z $BOOTMODE ] && BOOTMODE=false
|
||||
TMPDIR=/tmp
|
||||
($BOOTMODE) && TMPDIR=/dev/tmp
|
||||
|
||||
BINDIR=/data/magisk
|
||||
CHROMEDIR=$BINDIR/chromeos
|
||||
# This path should work in any cases
|
||||
TMPDIR=/dev/tmp
|
||||
|
||||
NEWBOOT=$TMPDIR/boottmp/new-boot.img
|
||||
UNPACKDIR=$TMPDIR/boottmp/bootunpack
|
||||
RAMDISK=$TMPDIR/boottmp/ramdisk
|
||||
BOOTTMP=$TMPDIR/boottmp
|
||||
MAGISKBIN=/data/magisk
|
||||
CHROMEDIR=$MAGISKBIN/chromeos
|
||||
|
||||
SYSTEMLIB=/system/lib
|
||||
[ -d /system/lib64 ] && SYSTEMLIB=/system/lib64
|
||||
|
||||
ui_print() {
|
||||
echo "$1"
|
||||
# Default permissions
|
||||
umask 022
|
||||
|
||||
ui_print_wrapper() {
|
||||
type ui_print >/dev/null && ui_print "$1" || echo "$1"
|
||||
}
|
||||
|
||||
grep_prop() {
|
||||
@@ -25,7 +24,7 @@ grep_prop() {
|
||||
if [ -z "$FILES" ]; then
|
||||
FILES='/system/build.prop'
|
||||
fi
|
||||
cat $FILES 2>/dev/null | sed -n $REGEX | head -n 1
|
||||
cat $FILES 2>/dev/null | sed -n "$REGEX" | head -n 1
|
||||
}
|
||||
|
||||
find_boot_image() {
|
||||
@@ -42,109 +41,93 @@ find_boot_image() {
|
||||
fi
|
||||
}
|
||||
|
||||
unpack_boot() {
|
||||
rm -rf $UNPACKDIR $RAMDISK 2>/dev/null
|
||||
mkdir -p $UNPACKDIR
|
||||
mkdir -p $RAMDISK
|
||||
cd $UNPACKDIR
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $BINDIR/bootimgtools --extract $1
|
||||
|
||||
cd $RAMDISK
|
||||
$BINDIR/busybox gunzip -c < $UNPACKDIR/ramdisk.gz | cpio -i
|
||||
}
|
||||
|
||||
repack_boot() {
|
||||
cd $RAMDISK
|
||||
find . | cpio -o -H newc 2>/dev/null | gzip -9 > $UNPACKDIR/ramdisk.gz
|
||||
cd $UNPACKDIR
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $BINDIR/bootimgtools --repack $BOOTIMAGE
|
||||
if [ -f chromeos ]; then
|
||||
echo " " > config
|
||||
echo " " > bootloader
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $CHROMEDIR/futility vbutil_kernel --pack new-boot.img.signed --keyblock $CHROMEDIR/kernel.keyblock --signprivate $CHROMEDIR/kernel_data_key.vbprivk --version 1 --vmlinuz new-boot.img --config config --arch arm --bootloader bootloader --flags 0x1
|
||||
rm -f new-boot.img
|
||||
mv new-boot.img.signed new-boot.img
|
||||
fi
|
||||
if ($SAMSUNG); then
|
||||
SAMSUNG_CHECK=$(cat new-boot.img | grep SEANDROIDENFORCE)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -n "SEANDROIDENFORCE" >> new-boot.img
|
||||
fi
|
||||
fi
|
||||
if ($LGE_G); then
|
||||
# Prevent secure boot error on LG G2/G3.
|
||||
# Just for know, It's a pattern which bootloader verifies at boot. Thanks to LG hackers.
|
||||
echo -n -e "\x41\xa9\xe4\x67\x74\x4d\x1d\x1b\xa4\x29\xf2\xec\xea\x65\x52\x79" >> new-boot.img
|
||||
fi
|
||||
mv new-boot.img $NEWBOOT
|
||||
}
|
||||
|
||||
# Environments
|
||||
# Set permissions
|
||||
chmod -R 755 $CHROMEDIR/futility $BINDIR
|
||||
chmod -R 755 $CHROMEDIR/futility $MAGISKBIN 2>/dev/null
|
||||
# Temporary busybox for installation
|
||||
mkdir -p $TMPDIR/busybox
|
||||
$MAGISKBIN/busybox --install -s $TMPDIR/busybox
|
||||
rm -f $TMPDIR/busybox/su $TMPDIR/busybox/sh $TMPDIR/busybox/reboot
|
||||
PATH=$TMPDIR/busybox:$PATH
|
||||
|
||||
# Find the boot image
|
||||
find_boot_image
|
||||
if [ -z "$BOOTIMAGE" ]; then
|
||||
ui_print "! Unable to detect boot image"
|
||||
ui_print_wrapper "! Unable to detect boot image"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ui_print "- Found Boot Image: $BOOTIMAGE"
|
||||
ui_print_wrapper "- Found Boot Image: $BOOTIMAGE"
|
||||
|
||||
# Detect special vendors
|
||||
SAMSUNG=false
|
||||
SAMSUNG_CHECK=$(cat /system/build.prop | grep "ro.build.fingerprint=" | grep -i "samsung")
|
||||
if [ $? -eq 0 ]; then
|
||||
SAMSUNG=true
|
||||
fi
|
||||
LGE_G=false
|
||||
RBRAND=$(grep_prop ro.product.brand)
|
||||
RMODEL=$(grep_prop ro.product.device)
|
||||
if [ "$RBRAND" = "lge" ] || [ "$RBRAND" = "LGE" ]; then
|
||||
if [ "$RMODEL" = "*D80*" ] ||
|
||||
[ "$RMODEL" = "*S98*" ] ||
|
||||
[ "$RMODEL" = "*D85*" ] ||
|
||||
[ "$RMODEL" = "*F40*" ]; then
|
||||
LGE_G=true
|
||||
ui_print "! Bump device detected"
|
||||
fi
|
||||
rm -rf $BOOTTMP 2>/dev/null
|
||||
mkdir -p $BOOTTMP
|
||||
cd $BOOTTMP
|
||||
|
||||
ui_print_wrapper "- Unpacking boot image"
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --unpack $BOOTIMAGE
|
||||
if [ $? -ne 0 ]; then
|
||||
ui_print_wrapper "! Unable to unpack boot image"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# First unpack the boot image
|
||||
unpack_boot $BOOTIMAGE
|
||||
# Update our previous backup to new format if exists
|
||||
if [ -f /data/stock_boot.img ]; then
|
||||
SHA1=`LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --sha1 /data/stock_boot.img | tail -n 1`
|
||||
STOCKDUMP=/data/stock_boot_${SHA1}.img
|
||||
mv /data/stock_boot.img $STOCKDUMP
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --compress $STOCKDUMP
|
||||
fi
|
||||
|
||||
SUPERSU=false
|
||||
[ -f sbin/launch_daemonsu.sh ] && SUPERSU=true
|
||||
|
||||
if ($SUPERSU); then
|
||||
ui_print "- SuperSU patched image detected"
|
||||
rm -f magisk sbin/init.magisk.rc sbin/magic_mask.sh
|
||||
repack_boot
|
||||
else
|
||||
if [ -f /data/stock_boot.img ]; then
|
||||
ui_print "- Boot image backup found!"
|
||||
NEWBOOT=/data/stock_boot.img
|
||||
else
|
||||
ui_print "! Boot image backup unavailable"
|
||||
if [ -d ".backup" ]; then
|
||||
ui_print "- Restoring ramdisk with backup"
|
||||
cp -af .backup/. .
|
||||
# Detect boot image state
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --cpio-test ramdisk.cpio
|
||||
case $? in
|
||||
0 )
|
||||
ui_print_wrapper "! Magisk is not installed!"
|
||||
ui_print_wrapper "! Nothing to uninstall"
|
||||
exit
|
||||
;;
|
||||
1 )
|
||||
# Find SHA1 of stock boot image
|
||||
if [ -z $SHA1 ]; then
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --cpio-extract ramdisk.cpio init.magisk.rc init.magisk.rc
|
||||
SHA1=`grep_prop "# STOCKSHA1" init.magisk.rc`
|
||||
[ ! -z $SHA1 ] && STOCKDUMP=/data/stock_boot_${SHA1}.img
|
||||
rm -f init.magisk.rc
|
||||
fi
|
||||
rm -f magisk sbin/init.magisk.rc sbin/magic_mask.sh
|
||||
repack_boot
|
||||
fi
|
||||
if [ -f ${STOCKDUMP}.gz ]; then
|
||||
ui_print_wrapper "- Boot image backup found!"
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --decompress ${STOCKDUMP}.gz stock_boot.img
|
||||
else
|
||||
ui_print_wrapper "! Boot image backup unavailable"
|
||||
ui_print_wrapper "- Restoring ramdisk with backup"
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --cpio-restore ramdisk.cpio
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --repack $BOOTIMAGE stock_boot.img
|
||||
fi
|
||||
;;
|
||||
2 )
|
||||
ui_print_wrapper "- SuperSU patched image detected"
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --cpio-restore ramdisk.cpio
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $MAGISKBIN/magiskboot --repack $BOOTIMAGE stock_boot.img
|
||||
;;
|
||||
esac
|
||||
|
||||
# Sign chromeos boot
|
||||
if [ -f chromeos ]; then
|
||||
echo > config
|
||||
echo > bootloader
|
||||
LD_LIBRARY_PATH=$SYSTEMLIB $CHROMEDIR/futility vbutil_kernel --pack stock_boot.img.signed --keyblock $CHROMEDIR/kernel.keyblock --signprivate $CHROMEDIR/kernel_data_key.vbprivk --version 1 --vmlinuz stock_boot.img --config config --arch arm --bootloader bootloader --flags 0x1
|
||||
rm -f stock_boot.img
|
||||
mv stock_boot.img.signed stock_boot.img
|
||||
fi
|
||||
|
||||
chmod 644 $NEWBOOT
|
||||
|
||||
ui_print "- Flashing stock/reverted image"
|
||||
ui_print_wrapper "- Flashing stock/reverted image"
|
||||
[ ! -L "$BOOTIMAGE" ] && dd if=/dev/zero of=$BOOTIMAGE bs=4096 2>/dev/null
|
||||
dd if=$NEWBOOT of=$BOOTIMAGE bs=4096
|
||||
dd if=stock_boot.img of=$BOOTIMAGE bs=4096
|
||||
|
||||
ui_print "- Removing Magisk files"
|
||||
ui_print_wrapper "- Removing Magisk files"
|
||||
rm -rf /cache/magisk.log /cache/last_magisk.log /cache/magiskhide.log /cache/.disable_magisk \
|
||||
/cache/magisk /cache/magisk_merge /cache/magisk_mount /cache/unblock /cache/magisk_uninstaller.sh \
|
||||
/data/Magisk.apk /data/magisk.apk /data/magisk.img /data/magisk_merge.img \
|
||||
/data/busybox /data/magisk /data/custom_ramdisk_patch.sh 2>/dev/null
|
||||
|
||||
($BOOTMODE) && reboot
|
||||
$BOOTMODE && reboot
|
||||
|
@@ -100,7 +100,11 @@ public class InstallFragment extends Fragment implements CallbackEvent.Listener<
|
||||
magiskManager.magiskLink,
|
||||
Utils.getLegalFilename(filename)))
|
||||
.setNeutralButton(R.string.release_notes, (dialog, which) -> {
|
||||
magiskManager.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(magiskManager.releaseNoteLink)));
|
||||
if (magiskManager.releaseNoteLink != null) {
|
||||
Intent openReleaseNoteLink = new Intent(Intent.ACTION_VIEW, Uri.parse(magiskManager.releaseNoteLink));
|
||||
openReleaseNoteLink.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
magiskManager.startActivity(openReleaseNoteLink);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.no_thanks, null)
|
||||
.show();
|
||||
|
@@ -63,6 +63,8 @@ public class MagiskManager extends Application {
|
||||
|
||||
public boolean magiskHide;
|
||||
public boolean isDarkTheme;
|
||||
public boolean updateNotification;
|
||||
public boolean busybox;
|
||||
public int suRequestTimeout;
|
||||
public int suLogTimeout = 14;
|
||||
public int suAccessState;
|
||||
@@ -92,6 +94,7 @@ public class MagiskManager extends Application {
|
||||
devLogging = prefs.getBoolean("developer_logging", false);
|
||||
shellLogging = prefs.getBoolean("shell_logging", false);
|
||||
magiskHide = prefs.getBoolean("magiskhide", false);
|
||||
updateNotification = prefs.getBoolean("notification", true);
|
||||
// Always start a new root shell manually, just for safety
|
||||
Shell.init();
|
||||
updateMagiskInfo();
|
||||
@@ -101,7 +104,8 @@ public class MagiskManager extends Application {
|
||||
prefs.edit()
|
||||
.putBoolean("dark_theme", isDarkTheme)
|
||||
.putBoolean("magiskhide", magiskHide)
|
||||
.putBoolean("busybox", Utils.commandExists("busybox"))
|
||||
.putBoolean("notification", updateNotification)
|
||||
.putBoolean("busybox", busybox)
|
||||
.putBoolean("hosts", new File("/magisk/.core/hosts").exists())
|
||||
.putBoolean("disable", Utils.itemExist(MAGISK_DISABLE_FILE))
|
||||
.putString("su_request_timeout", String.valueOf(suRequestTimeout))
|
||||
@@ -147,6 +151,12 @@ public class MagiskManager extends Application {
|
||||
magiskVersion = Double.POSITIVE_INFINITY;
|
||||
}
|
||||
}
|
||||
ret = Shell.sh("getprop persist.magisk.busybox");
|
||||
try {
|
||||
busybox = Utils.isValidShellResponse(ret) && Integer.parseInt(ret.get(0)) != 0;
|
||||
} catch (NumberFormatException e) {
|
||||
busybox = false;
|
||||
}
|
||||
ret = Shell.sh("getprop ro.magisk.disable");
|
||||
try {
|
||||
disabled = Utils.isValidShellResponse(ret) && Integer.parseInt(ret.get(0)) != 0;
|
||||
|
@@ -81,6 +81,7 @@ public class MainActivity extends Activity
|
||||
|
||||
navigationView.setNavigationItemSelectedListener(this);
|
||||
getApplicationContext().reloadMainActivity.register(this);
|
||||
getApplicationContext().updateCheckDone.register(this);
|
||||
|
||||
}
|
||||
|
||||
@@ -105,6 +106,7 @@ public class MainActivity extends Activity
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
getApplicationContext().reloadMainActivity.unRegister(this);
|
||||
getApplicationContext().updateCheckDone.unRegister(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -126,7 +128,11 @@ public class MainActivity extends Activity
|
||||
|
||||
@Override
|
||||
public void onTrigger(CallbackEvent<Void> event) {
|
||||
recreate();
|
||||
if (event == getApplicationContext().reloadMainActivity) {
|
||||
recreate();
|
||||
} else if (event == getApplicationContext().updateCheckDone) {
|
||||
checkHideSection();
|
||||
}
|
||||
}
|
||||
|
||||
private void checkHideSection() {
|
||||
|
@@ -89,10 +89,6 @@ public class SettingsActivity extends Activity {
|
||||
prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
|
||||
prefScreen = getPreferenceScreen();
|
||||
|
||||
SwitchPreference busybox = (SwitchPreference) findPreference("busybox");
|
||||
SwitchPreference magiskHide = (SwitchPreference) findPreference("magiskhide");
|
||||
SwitchPreference hosts = (SwitchPreference) findPreference("hosts");
|
||||
|
||||
PreferenceCategory magiskCategory = (PreferenceCategory) findPreference("magisk");
|
||||
PreferenceCategory suCategory = (PreferenceCategory) findPreference("superuser");
|
||||
|
||||
@@ -118,11 +114,6 @@ public class SettingsActivity extends Activity {
|
||||
if (getApplication().magiskVersion < 11) {
|
||||
prefScreen.removePreference(magiskCategory);
|
||||
}
|
||||
if (getApplication().disabled) {
|
||||
busybox.setEnabled(false);
|
||||
magiskHide.setEnabled(false);
|
||||
hosts.setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -44,8 +44,8 @@ public class SplashActivity extends Activity{
|
||||
|
||||
// Now fire all async tasks
|
||||
new GetBootBlocks(this).exec();
|
||||
if (magiskManager.magiskHide && !magiskManager.disabled &&
|
||||
magiskManager.magiskVersion > 11 && !magiskManager.magiskHideStarted) {
|
||||
if (magiskManager.magiskHide && magiskManager.magiskVersion > 11 &&
|
||||
!magiskManager.magiskHideStarted) {
|
||||
new MagiskHide().enable();
|
||||
}
|
||||
new LoadModules(this) {
|
||||
|
@@ -2,7 +2,6 @@ package com.topjohnwu.magisk;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@@ -65,13 +64,10 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener<V
|
||||
}
|
||||
|
||||
@OnClick(R.id.magisk_status_container)
|
||||
public void magisk() {
|
||||
((MainActivity) getActivity()).navigationView.setCheckedItem(R.id.install);
|
||||
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
|
||||
try {
|
||||
transaction.replace(R.id.content_frame, new InstallFragment(), "install").commit();
|
||||
} catch (IllegalStateException ignored) {}
|
||||
public void gotoInstall() {
|
||||
if (getApplication().remoteMagiskVersion > 0) {
|
||||
((MainActivity) getActivity()).navigate(R.id.install);
|
||||
}
|
||||
}
|
||||
|
||||
private int defaultColor;
|
||||
@@ -110,14 +106,7 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener<V
|
||||
.setTitle(R.string.no_magisk_title)
|
||||
.setMessage(R.string.no_magisk_msg)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(R.string.goto_install, (dialogInterface, i) -> {
|
||||
((MainActivity) getActivity()).navigationView.setCheckedItem(R.id.install);
|
||||
FragmentTransaction transaction = getFragmentManager().beginTransaction();
|
||||
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
|
||||
try {
|
||||
transaction.replace(R.id.content_frame, new InstallFragment(), "install").commit();
|
||||
} catch (IllegalStateException ignored) {}
|
||||
})
|
||||
.setPositiveButton(R.string.goto_install, (d, i) -> gotoInstall())
|
||||
.setNegativeButton(R.string.no_thanks, null)
|
||||
.show();
|
||||
}
|
||||
@@ -172,7 +161,7 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener<V
|
||||
if (getApplication().magiskVersion < 0) {
|
||||
magiskVersionText.setText(R.string.magisk_version_error);
|
||||
} else if (getApplication().disabled) {
|
||||
magiskVersionText.setText(getString(R.string.magisk_version_disable, getApplication().magiskVersionString));
|
||||
magiskVersionText.setText(getString(R.string.magisk_version_core_only, getApplication().magiskVersionString));
|
||||
} else {
|
||||
magiskVersionText.setText(getString(R.string.magisk_version, getApplication().magiskVersionString));
|
||||
}
|
||||
@@ -225,9 +214,6 @@ public class StatusFragment extends Fragment implements CallbackEvent.Listener<V
|
||||
if (getApplication().magiskVersion < 0) {
|
||||
color = colorBad;
|
||||
image = R.drawable.ic_cancel;
|
||||
} else if (getApplication().disabled) {
|
||||
color = colorNeutral;
|
||||
image = R.drawable.ic_cancel;
|
||||
}
|
||||
|
||||
magiskStatusContainer.setBackgroundColor(color);
|
||||
|
@@ -48,7 +48,8 @@ public class CheckUpdates extends ParallelTask<Void, Void, Void> {
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void v) {
|
||||
if (magiskManager.magiskVersion < magiskManager.remoteMagiskVersion && showNotification) {
|
||||
if (magiskManager.magiskVersion < magiskManager.remoteMagiskVersion
|
||||
&& showNotification && magiskManager.updateNotification) {
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(magiskManager);
|
||||
builder.setSmallIcon(R.drawable.ic_magisk)
|
||||
.setContentTitle(magiskManager.getString(R.string.magisk_update_title))
|
||||
|
@@ -57,12 +57,10 @@ public class LoadRepos extends ParallelTask<Void, Void, Void> {
|
||||
String etag = prefs.getString(ETAG_KEY, "");
|
||||
header.put("If-None-Match", etag);
|
||||
|
||||
magiskManager.repoMap = new ValueSortedMap<>();
|
||||
|
||||
// Make a request to main URL for repo info
|
||||
String jsonString = WebService.request(REPO_URL, WebService.GET, null, header, false);
|
||||
|
||||
ValueSortedMap<String, Repo> cached = dbHelper.getRepoMap();
|
||||
ValueSortedMap<String, Repo> cached = dbHelper.getRepoMap(false), fetched = new ValueSortedMap<>();
|
||||
|
||||
if (!TextUtils.isEmpty(jsonString)) {
|
||||
try {
|
||||
@@ -97,27 +95,24 @@ public class LoadRepos extends ParallelTask<Void, Void, Void> {
|
||||
repo.update(updatedDate);
|
||||
}
|
||||
if (repo.getId() != null) {
|
||||
magiskManager.repoMap.put(id, repo);
|
||||
fetched.put(id, repo);
|
||||
}
|
||||
} catch (BaseModule.CacheModException ignored) {}
|
||||
|
||||
// Update the database
|
||||
dbHelper.addRepoMap(fetched);
|
||||
// The leftover cached are those removed remote, cleanup db
|
||||
dbHelper.removeRepo(cached);
|
||||
// Update ETag
|
||||
prefs.edit().putString(ETAG_KEY, etag).apply();
|
||||
}
|
||||
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
// Use cached if no internet or no updates
|
||||
Logger.dev("LoadRepos: No updates, use cached");
|
||||
magiskManager.repoMap.putAll(cached);
|
||||
cached.clear();
|
||||
}
|
||||
|
||||
// Update the database
|
||||
dbHelper.addRepoMap(magiskManager.repoMap);
|
||||
// The leftover cached are those removed remote, cleanup db
|
||||
dbHelper.removeRepo(cached);
|
||||
// Update ETag
|
||||
prefs.edit().putString(ETAG_KEY, etag).apply();
|
||||
magiskManager.repoMap = dbHelper.getRepoMap();
|
||||
|
||||
Logger.dev("LoadRepos: Repo load done");
|
||||
return null;
|
||||
|
@@ -8,6 +8,6 @@ public class Activity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public MagiskManager getApplicationContext() {
|
||||
return (MagiskManager) getApplication();
|
||||
return (MagiskManager) super.getApplicationContext();
|
||||
}
|
||||
}
|
||||
|
@@ -13,7 +13,7 @@ import java.util.Collection;
|
||||
|
||||
public class RepoDatabaseHelper extends SQLiteOpenHelper {
|
||||
|
||||
private static final int DATABASE_VER = 1;
|
||||
private static final int DATABASE_VER = 2;
|
||||
private static final String TABLE_NAME = "repos";
|
||||
|
||||
public RepoDatabaseHelper(Context context) {
|
||||
@@ -33,8 +33,12 @@ public class RepoDatabaseHelper extends SQLiteOpenHelper {
|
||||
"(id TEXT, name TEXT, version TEXT, versionCode INT, " +
|
||||
"author TEXT, description TEXT, repo_name TEXT, last_update INT, " +
|
||||
"PRIMARY KEY(id))");
|
||||
oldVersion++;
|
||||
}
|
||||
if (oldVersion == 1) {
|
||||
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD template INT");
|
||||
oldVersion++;
|
||||
}
|
||||
// No upgrades yet
|
||||
}
|
||||
|
||||
public void addRepoMap(ValueSortedMap<String, Repo> map) {
|
||||
@@ -62,6 +66,10 @@ public class RepoDatabaseHelper extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
public ValueSortedMap<String, Repo> getRepoMap() {
|
||||
return getRepoMap(true);
|
||||
}
|
||||
|
||||
public ValueSortedMap<String, Repo> getRepoMap(boolean filtered) {
|
||||
ValueSortedMap<String, Repo> ret = new ValueSortedMap<>();
|
||||
SQLiteDatabase db = getReadableDatabase();
|
||||
Repo repo;
|
||||
@@ -69,6 +77,10 @@ public class RepoDatabaseHelper extends SQLiteOpenHelper {
|
||||
while (c.moveToNext()) {
|
||||
repo = new Repo(c);
|
||||
Logger.dev("Load from cache: " + repo.getId());
|
||||
if (repo.getTemplateVersion() < 3 && filtered) {
|
||||
Logger.dev("Outdated repo: " + repo.getId());
|
||||
continue;
|
||||
}
|
||||
ret.put(repo.getId(), repo);
|
||||
}
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ import java.util.List;
|
||||
public abstract class BaseModule implements Comparable<BaseModule> {
|
||||
|
||||
private String mId, mName, mVersion, mAuthor, mDescription;
|
||||
private int mVersionCode = 0;
|
||||
private int mVersionCode = 0, templateVersion = 0;
|
||||
|
||||
protected BaseModule() {}
|
||||
|
||||
@@ -22,6 +22,7 @@ public abstract class BaseModule implements Comparable<BaseModule> {
|
||||
mVersionCode = c.getInt(c.getColumnIndex("versionCode"));
|
||||
mAuthor = c.getString(c.getColumnIndex("author"));
|
||||
mDescription = c.getString(c.getColumnIndex("description"));
|
||||
templateVersion = c.getInt(c.getColumnIndex("template"));
|
||||
}
|
||||
|
||||
protected void parseProps(List<String> props) throws CacheModException { parseProps(props.toArray(new String[props.size()])); }
|
||||
@@ -57,6 +58,10 @@ public abstract class BaseModule implements Comparable<BaseModule> {
|
||||
case "description":
|
||||
mDescription = prop[1];
|
||||
break;
|
||||
case "template":
|
||||
try {
|
||||
templateVersion = Integer.parseInt(prop[1]);
|
||||
} catch (NumberFormatException ignored) {}
|
||||
case "cacheModule":
|
||||
if (Boolean.parseBoolean(prop[1]))
|
||||
throw new CacheModException(mId);
|
||||
@@ -99,6 +104,10 @@ public abstract class BaseModule implements Comparable<BaseModule> {
|
||||
return mVersionCode;
|
||||
}
|
||||
|
||||
public int getTemplateVersion() {
|
||||
return templateVersion;
|
||||
}
|
||||
|
||||
public static class CacheModException extends Exception {
|
||||
public CacheModException(String id) {
|
||||
Logger.error("Cache mods are no longer supported! id: " + id);
|
||||
|
@@ -53,6 +53,7 @@ public class Repo extends BaseModule {
|
||||
values.put("description", getDescription());
|
||||
values.put("repo_name", repoName);
|
||||
values.put("last_update", mLastUpdate.getTime());
|
||||
values.put("template", getTemplateVersion());
|
||||
return values;
|
||||
}
|
||||
|
||||
|
@@ -12,6 +12,7 @@ public class UpdateCheckService extends JobService {
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
magiskManager.updateMagiskInfo();
|
||||
magiskManager.updateNotification = magiskManager.prefs.getBoolean("notification", true);
|
||||
return super.doInBackground(voids);
|
||||
}
|
||||
|
||||
|
@@ -91,10 +91,12 @@ public class Utils {
|
||||
isDownloading = true;
|
||||
|
||||
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
|
||||
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(link));
|
||||
request.setDestinationUri(Uri.fromFile(file));
|
||||
|
||||
receiver.setDownloadID(downloadManager.enqueue(request));
|
||||
if (link != null) {
|
||||
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(link));
|
||||
request.setDestinationUri(Uri.fromFile(file));
|
||||
receiver.setDownloadID(downloadManager.enqueue(request));
|
||||
}
|
||||
receiver.setFilename(filename);
|
||||
context.registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
|
||||
}
|
||||
|
195
app/src/main/res/values-cs/strings.xml
Normal file
195
app/src/main/res/values-cs/strings.xml
Normal file
@@ -0,0 +1,195 @@
|
||||
<resources>
|
||||
<!--Universal-->
|
||||
|
||||
<!--Welcome Activity-->
|
||||
<string name="navigation_drawer_open">Otevřít postranní panel</string>
|
||||
<string name="navigation_drawer_close">Zavřít postranní panel</string>
|
||||
<string name="modules">Moduly</string>
|
||||
<string name="downloads">Stahování</string>
|
||||
<string name="superuser">Superuser</string>
|
||||
<string name="log">Log</string>
|
||||
<string name="settings">Nastavení</string>
|
||||
<string name="status">Stav</string>
|
||||
<string name="install">Instalovat</string>
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Nainstalován Magisk v%1$s</string>
|
||||
<string name="magisk_version_error">Magisk není nainstalován</string>
|
||||
|
||||
<string name="checking_for_updates">Kontrola aktualizací…</string>
|
||||
<string name="magisk_update_available">Magisk v%1$.1f je dostupný!</string>
|
||||
<string name="cannot_check_updates">Nelze zkontrolovat aktualizace. Jste připojeni k Internetu?</string>
|
||||
<string name="up_to_date">Poslední verze z %1$s nainstalovaných</string>
|
||||
<string name="root_error">Zařízení s rootem ale chybí root povolení, máte jej zpřístupněno?</string>
|
||||
<string name="not_rooted">Nemáte root</string>
|
||||
<string name="proper_root">Správně provedený root</string>
|
||||
<string name="safetyNet_check_text">Kliknutím zahájíte SafetyNet kontrolu</string>
|
||||
<string name="checking_safetyNet_status">Kontrola stavu SafetyNet…</string>
|
||||
<string name="safetyNet_connection_failed">Nelze se spojit s Google API</string>
|
||||
<string name="safetyNet_connection_suspended">Spojení s Google API bylo přerušeno</string>
|
||||
<string name="safetyNet_error">Nelze zkontrolovat SafetyNet. Jste připojeni k Internetu?</string>
|
||||
<string name="safetyNet_fail">SafetyNet dopadl neúspěšně: CTS profile mismatch</string>
|
||||
<string name="safetyNet_pass">SafetyNet Schváleno</string>
|
||||
<string name="root_info_warning">Funkčnost omezena</string>
|
||||
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">(Auto) %1$s</string>
|
||||
<string name="cannot_auto_detect">(Nelze zjistit automaticky)</string>
|
||||
<string name="boot_image_title">Umístění Boot Image</string>
|
||||
<string name="detect_button">Zjistit</string>
|
||||
<string name="advanced_settings_title">Pokročilá Nastavení</string>
|
||||
<string name="keep_force_encryption">Udržet "force encryption"</string>
|
||||
<string name="keep_dm_verity">Udržet dm-verity</string>
|
||||
<string name="current_magisk_title">Nainstalovaná verze Magisk: %1$s</string>
|
||||
<string name="install_magisk_title">Poslední verze Magisk: %1$s</string>
|
||||
<string name="uninstall">Odinstalovat</string>
|
||||
<string name="reboot_countdown">Restart za %1$d</string>
|
||||
<string name="uninstall_magisk_title">Odinstalovat Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Tímto odstraníte veškeré moduly, MagiskSU a potencionálně zašifrujete svá data pokud ještě nejsou\nOpravdu chcete pokračovat?</string>
|
||||
<string name="version_none">(Žádná)</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(Žádné info)</string>
|
||||
<string name="no_modules_found">Žádný modul nenalezen</string>
|
||||
<string name="update_file_created">Modul bude aktualizován během příštího restartu</string>
|
||||
<string name="remove_file_created">Modul bude smazán během příštího restartu</string>
|
||||
<string name="remove_file_deleted">Modul nebude smazán během příštího restartu</string>
|
||||
<string name="disable_file_created">Modul bude zakázán během příštího restartu</string>
|
||||
<string name="disable_file_removed">Modul bude povolen během příštího restartu</string>
|
||||
<string name="author">Vytvořeno %1$s</string>
|
||||
<string name="fab_flash_zip">Flash Zip Modulu</string>
|
||||
|
||||
<!--Repo Fragment-->
|
||||
<string name="update_available">Dostupná Aktualizace</string>
|
||||
<string name="installed">Nainstalováno</string>
|
||||
<string name="not_installed">Nenainstalováno</string>
|
||||
|
||||
<!--Log Fragment-->
|
||||
<string name="menuSaveToSd">Uložit na SD</string>
|
||||
<string name="menuReload">Aktualizovat</string>
|
||||
<string name="menuClearLog">Smazat Log</string>
|
||||
<string name="logs_cleared">Log byl smazán</string>
|
||||
<string name="log_is_empty">Log je prázdný</string>
|
||||
<string name="logs_save_failed">Nezdařilo se Log uložit na SD kartu:</string>
|
||||
|
||||
<!--About Activity-->
|
||||
<string name="about">O aplikaci</string>
|
||||
<string name="app_developers">Hlavní vývojáři</string>
|
||||
<string name="app_developers_"><![CDATA[Aplikaci vytvořil <a href="https://github.com/topjohnwu">topjohnwu</a> ve spolupráci s <a href="https://github.com/d8ahazard">Digitalhigh</a> a <a href="https://github.com/dvdandroid">Dvdandroid</a>.]]></string>
|
||||
<string name="app_changelog">Seznam změn</string>
|
||||
<string name="translators" />
|
||||
<string name="app_version">Verze aplikace</string>
|
||||
<string name="app_source_code">Zdrojový kód</string>
|
||||
<string name="donation">Příspěvek</string>
|
||||
<string name="app_translators">Překladatelé aplikace</string>
|
||||
<string name="support_thread">Vlákno podpory na fóru</string>
|
||||
|
||||
<!--Toasts, Dialogs-->
|
||||
<string name="permissionNotGranted">Tato funkce nebude fungovat bez povolení k zápisu na externí úložiště.</string>
|
||||
<string name="no_thanks">Ne, díky</string>
|
||||
<string name="yes">Ano</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="close">Zavřít</string>
|
||||
<string name="repo_install_title">Instalovat %1$s</string>
|
||||
<string name="repo_install_msg">Chcete nainstalovat %1$s ?</string>
|
||||
<string name="download_install">Stažení & Instalace</string>
|
||||
<string name="download">Stáhnout</string>
|
||||
<string name="goto_install">Jděte do sekce \"Instalovat\"</string>
|
||||
<string name="download_file_error">Chyba při Stahování souboru</string>
|
||||
<string name="install_error">Chyba při Instalaci!</string>
|
||||
<string name="invalid_zip">Soubor zip není Magisk Modul!!</string>
|
||||
<string name="reboot_title">Instalace proběhla úspěšně!</string>
|
||||
<string name="reboot_msg">Chcete nyní restartovat vaše zařízení?</string>
|
||||
<string name="reboot">Restart</string>
|
||||
<string name="copying_msg">Kopírovat zip do temp adresáře</string>
|
||||
<string name="zip_install_progress_title">Instalování</string>
|
||||
<string name="zip_unzip_msg">Extrahování zip souboru …</string>
|
||||
<string name="zip_process_msg">Zpracování zip souboru …</string>
|
||||
<string name="zip_install_progress_msg">Instalování %1$s …</string>
|
||||
<string name="no_magisk_title">Magisk není Nainstalován!</string>
|
||||
<string name="no_magisk_msg">Chcete stáhnout a nainstalovat Magisk?</string>
|
||||
<string name="downloading_toast">Stahování %1$s</string>
|
||||
<string name="magisk_update_title">K dispozici je aktualizace Magisk!</string>
|
||||
<string name="settings_reboot_toast">Restartovat pro použití nastavení</string>
|
||||
<string name="release_notes">Poznámky k vydání</string>
|
||||
<string name="repo_cache_cleared">Mezipaměť smazána</string>
|
||||
<string name="safetyNet_hide_notice">Tato aplikace využívá SafetyNet\nVe výchozím nastavení již ovládaný skrze MagiskHide</string>
|
||||
<string name="start_magiskhide">Spouštění MagiskHide …</string>
|
||||
<string name="no_magisksu_title">Nepoužíváte MagiskSU!</string>
|
||||
<string name="no_magisksu_msg">Nemáte root s MagiskSU, používání MagiskHide samotného nebude stačit!\nNení to oficiálně podporováno a potřebovali byste další nástroje (např. suhide) k prolomení Safety Net.</string>
|
||||
<string name="understand">Rozumím</string>
|
||||
<string name="process_error">Chyba při Zpracování</string>
|
||||
<string name="internal_storage">Zip je uchován v:\n[Interním Úložišti]%1$s</string>
|
||||
<string name="zip_process_title">Zpracování</string>
|
||||
<string name="manual_boot_image">Ručně vyberte boot image!</string>
|
||||
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">Obecné</string>
|
||||
<string name="settings_dark_theme_title">Tmavý Vzhled</string>
|
||||
<string name="settings_dark_theme_summary">Povolit tmavý vzhled</string>
|
||||
<string name="settings_notification_title">Oznámení o Aktualizaci</string>
|
||||
<string name="settings_notification_summary">Zobrazí oznámení aktualizace, když je k dispozici nová verze</string>
|
||||
<string name="settings_clear_cache_title">Smazat Uchovanou Mezipaměť</string>
|
||||
<string name="settings_clear_cache_summary">Smaže informace online použití v Mezipaměti, donutí aplikaci obnovit informace online</string>
|
||||
|
||||
<string name="settings_magiskhide_summary">Skryje root (MagiskSU) před různými aplikacemi</string>
|
||||
<string name="settings_busybox_title">Povolit BusyBox</string>
|
||||
<string name="settings_busybox_summary">Nasadí vestavěný Magisk busybox do xbin</string>
|
||||
<string name="settings_hosts_title">Nesystémová "hosts" data</string>
|
||||
<string name="settings_hosts_summary">Podpora nesystémových dat "hosts" pro Adblock aplikace</string>
|
||||
|
||||
<string name="settings_su_app_adb">Aplikace i ADB</string>
|
||||
<string name="settings_su_app">Pouze aplikace</string>
|
||||
<string name="settings_su_adb">Pouze ADB</string>
|
||||
<string name="settings_su_disable">Zakázáno</string>
|
||||
<string name="settings_su_request_10">10 sekund</string>
|
||||
<string name="settings_su_request_20">20 sekund</string>
|
||||
<string name="settings_su_request_30">30 sekund</string>
|
||||
<string name="settings_su_request_60">60 sekund</string>
|
||||
<string name="superuser_access">Přístup Superuser</string>
|
||||
<string name="auto_response">Automatická Reakce</string>
|
||||
<string name="request_timeout">Časový limit Požadavku</string>
|
||||
<string name="superuser_notification">Oznámení Superuser</string>
|
||||
<string name="request_timeout_summary">%1$s sekund</string>
|
||||
|
||||
<string name="settings_development_category">Vývoj aplikace</string>
|
||||
<string name="settings_developer_logging_title">Povolit pokročilé ladění logování</string>
|
||||
<string name="settings_developer_logging_summary">Zkuste zapnout toto pro rozsáhlejší logování</string>
|
||||
<string name="settings_shell_logging_title">Povolit logování pro příkazy shellu</string>
|
||||
<string name="settings_shell_logging_summary">Logování všech příkazů shellu a jejich výstup</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Požadavek Superuser</string>
|
||||
<string name="deny_with_str">Zamítnout%1$s</string>
|
||||
<string name="deny">Zamítnout</string>
|
||||
<string name="prompt">Dotaz</string>
|
||||
<string name="grant">Povolit</string>
|
||||
<string name="su_warning">Povolí plný přístup k vašemu zařízení.\nZamítněte pokud si nejste jisti!</string>
|
||||
<string name="forever">Navždy</string>
|
||||
<string name="once">Jednou</string>
|
||||
<string name="tenmin">10 min</string>
|
||||
<string name="twentymin">20 min</string>
|
||||
<string name="thirtymin">30 min</string>
|
||||
<string name="sixtymin">60 min</string>
|
||||
<string name="su_allow_toast">Pro %1$s bylo oprávnění Superuser povoleno</string>
|
||||
<string name="su_deny_toast">Pro %1$s bylo oprávnění Superuser zamítnuto</string>
|
||||
<string name="no_apps_found">Zatím zde není žádná aplikace</string>
|
||||
<string name="su_snack_grant">Superuser oprávnění pro %1$s je povoleno</string>
|
||||
<string name="su_snack_deny">Superuser oprávnění pro %1$s je zamítnuto</string>
|
||||
<string name="su_snack_notif_on">Oznámení pro %1$s je povoleno</string>
|
||||
<string name="su_snack_notif_off">Oznámení pro %1$s je zakázáno</string>
|
||||
<string name="su_snack_log_on">Logování %1$s je povoleno</string>
|
||||
<string name="su_snack_log_off">Logování %1$s je zakázáno</string>
|
||||
<string name="su_snack_revoke">Záznamy oprávnění %1$s jsou smazány</string>
|
||||
<string name="su_revoke_title">Smazat?</string>
|
||||
<string name="su_revoke_msg">Smazat záznam ohledně oprávnění pro %1$s?</string>
|
||||
<string name="toast">Toast</string>
|
||||
<string name="none">Žádné</string>
|
||||
|
||||
<!--Superuser logs-->
|
||||
<string name="pid">PID:\u0020</string>
|
||||
<string name="target_uid">Cílové UID:\u0020</string>
|
||||
<string name="command">Příkaz:\u0020</string>
|
||||
<string name="settings_core_only_summary"></string>
|
||||
|
||||
</resources>
|
@@ -17,7 +17,6 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Magisk %1$s ist installiert</string>
|
||||
<string name="magisk_version_disable">Magisk %1$s ist deaktiviert</string>
|
||||
<string name="magisk_version_error">Magisk ist nicht installiert</string>
|
||||
|
||||
<string name="checking_for_updates">Suche nach Updates…</string>
|
||||
@@ -38,6 +37,7 @@
|
||||
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">%1$s (autom.)</string>
|
||||
<string name="cannot_auto_detect">(Erkennung nicht möglich)</string>
|
||||
<string name="boot_image_title">Boot-Image-Pfad</string>
|
||||
<string name="detect_button">Automatisch</string>
|
||||
<string name="advanced_settings_title">Erweiterte Optionen</string>
|
||||
@@ -124,16 +124,17 @@
|
||||
<string name="process_error">Prozessfehler</string>
|
||||
<string name="internal_storage">Die zip-Datei ist gespeichert unter:\n[Interner Speicher]%1$s</string>
|
||||
<string name="zip_process_title">Verarbeite</string>
|
||||
<string name="manual_boot_image">Bitte Boot-Image auswählen!</string>
|
||||
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">Allgemein</string>
|
||||
<string name="settings_dark_theme_title">Dunkles Theme</string>
|
||||
<string name="settings_dark_theme_summary">Dunkles Theme aktivieren</string>
|
||||
<string name="settings_notification_title">Update-Benachrichtigung</string>
|
||||
<string name="settings_notification_summary">Benachrichtigung, wenn eine neue Version verfügbar ist</string>
|
||||
<string name="settings_clear_cache_title">Repo-Cache löschen</string>
|
||||
<string name="settings_clear_cache_summary">Löscht die zwischengespeicherten Informationen der Online-Repos. Erzwingt eine Aktualisierung</string>
|
||||
|
||||
<string name="settings_disable_title">Magisk deaktivieren</string>
|
||||
<string name="settings_disable_summary">Deaktiviert alles außer den root-Zugang (MagiskSU)</string>
|
||||
<string name="settings_magiskhide_summary">Versteckt Magisk vor diversen Entdeckungsmethoden</string>
|
||||
<string name="settings_busybox_title">BusyBox aktivieren</string>
|
||||
<string name="settings_busybox_summary">Magisk\'s integriertes BusyBox nach xbin mounten</string>
|
||||
@@ -166,7 +167,6 @@
|
||||
<string name="deny">Verweigern</string>
|
||||
<string name="prompt">Nachfragen</string>
|
||||
<string name="grant">Gewähren</string>
|
||||
|
||||
<string name="su_warning">Erlaubt den vollen Zugriff auf das Gerät.\nVerweigere, wenn du dir unsicher bist!</string>
|
||||
<string name="forever">Dauerhaft</string>
|
||||
<string name="once">Nur diesmal</string>
|
||||
|
@@ -14,7 +14,6 @@
|
||||
|
||||
<!--Magisk Fragment-->
|
||||
<string name="magisk_version">Instalado Magisk v%1$s</string>
|
||||
<string name="magisk_version_disable">Magisk v%1$s está deshabilitado</string>
|
||||
<string name="magisk_version_error">Magisk no está instalado</string>
|
||||
|
||||
<string name="checking_for_updates">Comprobando actualizaciones…</string>
|
||||
@@ -126,8 +125,6 @@
|
||||
<string name="settings_clear_cache_title">Limpiar caché del repositorio</string>
|
||||
<string name="settings_clear_cache_summary">Limpiar la información en caché para los repositorios en línea, fuerza a la aplicación a actualizar en línea</string>
|
||||
|
||||
<string name="settings_disable_title">Deshabilitar Magisk</string>
|
||||
<string name="settings_disable_summary">Todo será desactivado excepto el root (MagiskSU)</string>
|
||||
<string name="settings_magiskhide_summary">Ocultar Magisk de varias detecciones</string>
|
||||
<string name="settings_busybox_title">Habilitar BusyBox</string>
|
||||
<string name="settings_busybox_summary">Montar el busybox interno de Magisk en xbin</string>
|
||||
|
181
app/src/main/res/values-fr/strings.xml
Normal file
181
app/src/main/res/values-fr/strings.xml
Normal file
@@ -0,0 +1,181 @@
|
||||
<resources>
|
||||
<!--Universal-->
|
||||
<!--Welcome Activity-->
|
||||
<string name="navigation_drawer_open">Ouvrir le menu de navigation</string>
|
||||
<string name="navigation_drawer_close">Fermer le menu de navigation</string>
|
||||
<string name="modules">Modules</string>
|
||||
<string name="downloads">Téléchargements</string>
|
||||
<string name="superuser">Superuser</string>
|
||||
<string name="log">Journal</string>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="status">État</string>
|
||||
<string name="install">Installer</string>
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Magisk v%1$s installée</string>
|
||||
<string name="magisk_version_core_only">Magisk v%1$s installée (Mode Core uniquement)</string>
|
||||
<string name="magisk_version_error">Magisk non installé</string>
|
||||
<string name="checking_for_updates">Vérification de mises à jour…</string>
|
||||
<string name="magisk_update_available">Magisk v%1$.1f disponible !</string>
|
||||
<string name="cannot_check_updates">Impossible de vérifier les mises à jour, pas d\'Internet ?</string>
|
||||
<string name="up_to_date">Dernière version %1$s installée</string>
|
||||
<string name="root_error">Rooté mais aucune permission root, non acceptée ?</string>
|
||||
<string name="not_rooted">Non rooté</string>
|
||||
<string name="proper_root">Correctement rooté</string>
|
||||
<string name="safetyNet_check_text">Appuyer pour lancer le contrôle SafetyNet</string>
|
||||
<string name="checking_safetyNet_status">Vérification de l\'état de SafetyNet…</string>
|
||||
<string name="safetyNet_connection_failed">Impossible de se connecter à l\'API Google</string>
|
||||
<string name="safetyNet_connection_suspended">La connexion à l\'API Google a été suspendue</string>
|
||||
<string name="safetyNet_error">Impossible de contrôler SafetyNet, pas d\'Internet?</string>
|
||||
<string name="safetyNet_fail">Échec SafetyNet: erreur de profil CTS</string>
|
||||
<string name="safetyNet_pass">SafetyNet réussi</string>
|
||||
<string name="root_info_warning">Fonctionnalités largement limitées</string>
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">(Auto) %1$s</string>
|
||||
<string name="cannot_auto_detect">(Auto détection impossible)</string>
|
||||
<string name="boot_image_title">Emplacement de l\'Image Boot</string>
|
||||
<string name="detect_button">Détection</string>
|
||||
<string name="advanced_settings_title">Paramètres avancés</string>
|
||||
<string name="keep_force_encryption">Garder le chiffrement forcé</string>
|
||||
<string name="keep_dm_verity">Garder dm-verity</string>
|
||||
<string name="current_magisk_title">Version Magisk Installée : %1$s</string>
|
||||
<string name="install_magisk_title">Dernière Version Magisk : %1$s</string>
|
||||
<string name="uninstall">Désinstaller</string>
|
||||
<string name="reboot_countdown">Redémarrage dans %1$d</string>
|
||||
<string name="uninstall_magisk_title">Désinstaller Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Cela va supprimer tous les modules, MagiskSU et éventuellement chiffrer vos données si vous n\'êtes pas chiffré\nÊtes-vous sûr de vouloir continuer ?</string>
|
||||
<string name="version_none">(Aucune)</string>
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(Aucune information transmise)</string>
|
||||
<string name="no_modules_found">Aucun module trouvé</string>
|
||||
<string name="update_file_created">Le module va être mis à jour au prochain redémarrage</string>
|
||||
<string name="remove_file_created">Le module va être supprimé au prochain redémarrage</string>
|
||||
<string name="remove_file_deleted">Le modufle ne va pas être supprimé au prochain redémarrage</string>
|
||||
<string name="disable_file_created">Le module va être désactivé au prochain redémarrage</string>
|
||||
<string name="disable_file_removed">Le module va être activé au prochain redémarrage</string>
|
||||
<string name="author">Créé par %1$s</string>
|
||||
<string name="fab_flash_zip">Flasher un Module Zip</string>
|
||||
<!--Repo Fragment-->
|
||||
<string name="update_available">Mise à jour disponible</string>
|
||||
<string name="installed">Installé</string>
|
||||
<string name="not_installed">Non installé</string>
|
||||
<!--Log Fragment-->
|
||||
<string name="menuSaveToSd">Enregistrer sur SD</string>
|
||||
<string name="menuReload">Actualiser</string>
|
||||
<string name="menuClearLog">Effacer le journal maintenant</string>
|
||||
<string name="logs_cleared">Journal effacé avec succès</string>
|
||||
<string name="log_is_empty">Journal vide</string>
|
||||
<string name="logs_save_failed">Impossible d\'écrire le journal sur la SD card:</string>
|
||||
<!--About Activity-->
|
||||
<string name="about">À propos</string>
|
||||
<string name="app_developers">Principaux développeurs</string>
|
||||
<string name="app_developers_"><![CDATA[App created by <a href="https://github.com/topjohnwu">topjohnwu</a> in collaboration with <a href="https://github.com/d8ahazard">Digitalhigh</a> and <a href="https://github.com/dvdandroid">Dvdandroid</a>.]]></string>
|
||||
<string name="app_changelog">Modifications de l\'application</string>
|
||||
<string name="translators" />
|
||||
<string name="app_version">Version de l\'application</string>
|
||||
<string name="app_source_code">Code source</string>
|
||||
<string name="donation">Dons</string>
|
||||
<string name="app_translators">Traducteurs de l\'application</string>
|
||||
<string name="support_thread">Sujet pour support</string>
|
||||
<!--Toasts, Dialogs-->
|
||||
<string name="permissionNotGranted">Cette fonctionnalité ne marchera pas sans la permission d\'écriture sur le stockage externe.</string>
|
||||
<string name="no_thanks">Non merci</string>
|
||||
<string name="yes">Oui</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="close">Fermer</string>
|
||||
<string name="repo_install_title">Installer %1$s</string>
|
||||
<string name="repo_install_msg">Voulez-vous installer %1$s ?</string>
|
||||
<string name="download_install">Télécharger & Installer</string>
|
||||
<string name="download">Télécharger</string>
|
||||
<string name="goto_install">Aller à la section \"Installer\"</string>
|
||||
<string name="download_file_error">Erreur de téléchargement du fichier</string>
|
||||
<string name="install_error">Échec de l\'installation !</string>
|
||||
<string name="invalid_zip">Ce zip n\'est pas un Module Magisk !!</string>
|
||||
<string name="reboot_title">Installation réussie !</string>
|
||||
<string name="reboot_msg">Voulez-vous redémarrer maintenant ?</string>
|
||||
<string name="reboot">Redémarrer</string>
|
||||
<string name="copying_msg">Copie du zip dans le répertoire temp</string>
|
||||
<string name="zip_install_progress_title">Installation</string>
|
||||
<string name="zip_unzip_msg">Décompression du fichier zip…</string>
|
||||
<string name="zip_process_msg">Exécution du fichier zip…</string>
|
||||
<string name="zip_install_progress_msg">Installation %1$s…</string>
|
||||
<string name="no_magisk_title">Magisk non installé !</string>
|
||||
<string name="no_magisk_msg">Voulez-vous télécharger et installer Magisk ?</string>
|
||||
<string name="downloading_toast">Téléchargement %1$s</string>
|
||||
<string name="magisk_update_title">Nouvelle mise à jour de Magisk disponible !</string>
|
||||
<string name="settings_reboot_toast">Redémarrer pour appliquer les changements</string>
|
||||
<string name="release_notes">Notes de version</string>
|
||||
<string name="repo_cache_cleared">Cache du dépôt effacé</string>
|
||||
<string name="safetyNet_hide_notice">Cette application utilise SafetyNet\nDéjà pris en charge par MagiskHide par défaut</string>
|
||||
<string name="start_magiskhide">Lancement de MagiskHide …</string>
|
||||
<string name="no_magisksu_title">MagiskSU non utilisé !</string>
|
||||
<string name="no_magisksu_msg">Vous n\'êtes pas rooté avec MagiskSU, utiliser uniquement MagiskHide peut ne pas suffire !\nCeci n\'est officiellement pas supporté et vous devriez avoir besoin d\'autres outils (ex : suhide) pour passer SafetyNet.</string>
|
||||
<string name="understand">Je comprends</string>
|
||||
<string name="process_error">Erreur d\'exécution</string>
|
||||
<string name="internal_storage">Le zip est stocké dans :\n[Internal Storage]%1$s</string>
|
||||
<string name="zip_process_title">Exécution</string>
|
||||
<string name="manual_boot_image">Veuillez sélectionner l\'image boot manuellement !</string>
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">Général</string>
|
||||
<string name="settings_dark_theme_title">Thème sombre</string>
|
||||
<string name="settings_dark_theme_summary">Activer le thème sombre</string>
|
||||
<string name="settings_notification_title">Notification de mise à jour</string>
|
||||
<string name="settings_notification_summary">Afficher des notifications de mises à jour quand une nouvelle version est disponible</string>
|
||||
<string name="settings_clear_cache_title">Effacer le cache du dépôt</string>
|
||||
<string name="settings_clear_cache_summary">Effacer les informations en cache des dépôts en ligne, pour forcer une actualisation de l\'application</string>
|
||||
<string name="settings_core_only_title">Mode Magisk Core uniquement</string>
|
||||
<string name="settings_core_only_summary">Activer uniquement les fonctionnalités de base, tous les modules ne seront pas chargés. MagiskSU, MagiskHide, les hosts systemless et busybox restent activés</string>
|
||||
<string name="settings_magiskhide_summary">Masquer Magisk de diverses détections</string>
|
||||
<string name="settings_busybox_title">Activer BusyBox</string>
|
||||
<string name="settings_busybox_summary">Relier le busybox de Magisk à xbin</string>
|
||||
<string name="settings_hosts_title">Hosts systemless</string>
|
||||
<string name="settings_hosts_summary">Support hosts systemless pour les applications type Adblock</string>
|
||||
<string name="settings_su_app_adb">Applications et ADB</string>
|
||||
<string name="settings_su_app">Applications uniquement</string>
|
||||
<string name="settings_su_adb">ADB uniquement</string>
|
||||
<string name="settings_su_disable">Désactivé</string>
|
||||
<string name="settings_su_request_10">10 secondes</string>
|
||||
<string name="settings_su_request_20">20 secondes</string>
|
||||
<string name="settings_su_request_30">30 secondes</string>
|
||||
<string name="settings_su_request_60">60 secondes</string>
|
||||
<string name="superuser_access">Accès Superuser</string>
|
||||
<string name="auto_response">Réponse automatique</string>
|
||||
<string name="request_timeout">Délai de requête</string>
|
||||
<string name="superuser_notification">Notification Superuser</string>
|
||||
<string name="request_timeout_summary">%1$s secondes</string>
|
||||
<string name="settings_development_category">Dévellopement de l\'application</string>
|
||||
<string name="settings_developer_logging_title">Activer le journal de débogage avancé</string>
|
||||
<string name="settings_developer_logging_summary">Cocher ceci pour activer la journalisation "verbose" (tout)</string>
|
||||
<string name="settings_shell_logging_title">Activer la journalisation de débogage de commande shell</string>
|
||||
<string name="settings_shell_logging_summary">Cocher ceci pour activer la journalisation de toutes les commandes shell et leurs données de sortie</string>
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Requête Superuser</string>
|
||||
<string name="deny_with_str">Refuser%1$s</string>
|
||||
<string name="deny">Refuser</string>
|
||||
<string name="prompt">Demander</string>
|
||||
<string name="grant">Accepter</string>
|
||||
<string name="su_warning">Accepter un accès complet à votre appareil.\nRefuser si vous n\'êtes pas sûr!</string>
|
||||
<string name="forever">Toujours</string>
|
||||
<string name="once">Une fois</string>
|
||||
<string name="tenmin">10 min</string>
|
||||
<string name="twentymin">20 min</string>
|
||||
<string name="thirtymin">30 min</string>
|
||||
<string name="sixtymin">60 min</string>
|
||||
<string name="su_allow_toast">%1$s a obtenu les droits Superuser</string>
|
||||
<string name="su_deny_toast">%1$s n\'a pas obtenu les droits Superuser</string>
|
||||
<string name="no_apps_found">Aucun application trouvée</string>
|
||||
<string name="su_snack_grant">Les droits Superuser de %1$s sont accordés</string>
|
||||
<string name="su_snack_deny">Les droits Superuser de %1$s sont refusés</string>
|
||||
<string name="su_snack_notif_on">Les notifications pour %1$s sont activées</string>
|
||||
<string name="su_snack_notif_off">Les notifications pour %1$s sont désactivées</string>
|
||||
<string name="su_snack_log_on">La journalisation pour %1$s est activée</string>
|
||||
<string name="su_snack_log_off">La journalisation pour %1$s est désactivée</string>
|
||||
<string name="su_snack_revoke">Les droits de %1$s sont annulés</string>
|
||||
<string name="su_revoke_title">Annuler ?</string>
|
||||
<string name="su_revoke_msg">Vous confirmez l\'annulation des droits pour %1$s ?</string>
|
||||
<string name="toast">Toast</string>
|
||||
<string name="none">Aucun</string>
|
||||
<!--Superuser logs-->
|
||||
<string name="pid">PID :\u0020</string>
|
||||
<string name="target_uid">Cible UID:\u0020</string>
|
||||
<string name="command">Commande :\u0020</string>
|
||||
</resources>
|
@@ -35,14 +35,19 @@
|
||||
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">(Auto) %1$s</string>
|
||||
<string name="boot_image_title">Boot Image</string>
|
||||
<string name="cannot_auto_detect">(Cannot auto detect)</string>
|
||||
<string name="boot_image_title">Immagine Boot</string>
|
||||
<string name="detect_button">Identifica</string>
|
||||
<string name="advanced_settings_title">Impostazioni Avanzate</string>
|
||||
<string name="keep_force_encryption">Mantieni crittografia forzata</string>
|
||||
<string name="keep_dm_verity">Mantieni dm-verity</string>
|
||||
<string name="current_magisk_title">Versione Magisk installata: %1$s</string>
|
||||
<string name="install_magisk_title">Ultima versione Magisk: %1$s</string>
|
||||
|
||||
<string name="uninstall">Disinstalla</string>
|
||||
<string name="reboot_countdown">Riavvio in %1$d</string>
|
||||
<string name="uninstall_magisk_title">Disinstalla Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Questo rimuoverà tutti i moduli, MagiskSU, e potenzialmente crittografare i dati, se non crittografati/nVuoi continuare?</string>
|
||||
<string name="version_none">(None)</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(Nessuna informazione)</string>
|
||||
@@ -83,41 +88,109 @@
|
||||
<!--Toasts, Dialogs-->
|
||||
<string name="permissionNotGranted">Questa funzione non funziona senza il permesso di scrivere sulla memoria di archiviazione esterna</string>
|
||||
<string name="no_thanks">No grazie</string>
|
||||
<string name="yes">Sì</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="close">Chiuso</string>
|
||||
<string name="repo_install_title">Installazione %1$s</string>
|
||||
<string name="repo_install_msg">Vuoi installare %1$s ?</string>
|
||||
<string name="download_install">Scarica e installa</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="goto_install">Valla alla sezione \"Install\"</string>
|
||||
<string name="download_file_error">Errore nel download del file</string>
|
||||
<string name="install_error">Errore di installazione!</string>
|
||||
<string name="invalid_zip">Lo zip non è un Modulo Magisk!!</string>
|
||||
<string name="reboot_title">Installazione completata</string>
|
||||
<string name="reboot_msg">Vuoi riavviare ora?</string>
|
||||
<string name="reboot">Riavvia</string>
|
||||
<string name="copying_msg">Copia Zip in una directory temporanea</string>
|
||||
<string name="zip_install_progress_title">Installazione</string>
|
||||
<string name="zip_unzip_msg">Unzip zip file …</string>
|
||||
<string name="zip_process_msg">Elaborazione file Zip …</string>
|
||||
<string name="zip_install_progress_msg">Installazione %1$s …</string>
|
||||
<string name="no_magisk_title">Magisk non installato!</string>
|
||||
<string name="no_magisk_msg">Vuoi scaricare ed installare Magisk?</string>
|
||||
<string name="downloading_toast">Download %1$s</string>
|
||||
<string name="magisk_update_title">Nuovo aggiornamento Magisk disponibile!</string>
|
||||
<string name="settings_reboot_toast">Riavvia per applicare</string>
|
||||
<string name="release_notes">Note di Rilascio</string>
|
||||
<string name="repo_cache_cleared">Cache Repo cancellata</string>
|
||||
<string name="safetyNet_hide_notice">Quest\'app usa SafetyNet\nè già gestita da Magisk Hide</string>
|
||||
<string name="start_magiskhide">Avvio MagiskHide …</string>
|
||||
<string name="no_magisksu_title">MagiskSU non in uso!</string>
|
||||
<string name="no_magisksu_msg">You are not rooted with MagiskSU, using MagiskHide itself might not be enough!\nIt\'s not officially supported, and you would need additional tools (e.g suhide) to pass Safety Net.</string>
|
||||
<string name="understand">Capisco</string>
|
||||
<string name="process_error">Errore di processo</string>
|
||||
<string name="internal_storage">Lo zip si trova in:\n[Internal Storage]%1$s</string>
|
||||
<string name="zip_process_title">Elaborazione</string>
|
||||
<string name="manual_boot_image">Seleziona manualmente l\'immagine di Boot!</string>
|
||||
|
||||
<!--URL Templates-->
|
||||
|
||||
<!--Settings Fragment -->
|
||||
<string name="settings_general_category">Generali</string>
|
||||
<string name="settings_dark_theme_title">Tema</string>
|
||||
<string name="settings_dark_theme_summary">Scegli un tema</string>
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">General</string>
|
||||
<string name="settings_dark_theme_title">Tema Scuro</string>
|
||||
<string name="settings_dark_theme_summary">Abilita Tema Scuro</string>
|
||||
<string name="settings_notification_title">Notifica Aggiornamento</string>
|
||||
<string name="settings_notification_summary">Mostra notifiche quando sono diponibili nuovi aggiornamenti</string>
|
||||
<string name="settings_clear_cache_title">Pulisci Cache Repo</string>
|
||||
<string name="settings_clear_cache_summary">Clear the cached information for online repos, forces the app to refresh online</string>
|
||||
|
||||
<string name="settings_magiskhide_summary">Hide Magisk from various detections</string>
|
||||
<string name="settings_busybox_title">Abilita BusyBox</string>
|
||||
<string name="settings_busybox_summary">Bind mount Magisk\'s built-in busybox to xbin</string>
|
||||
<string name="settings_hosts_title">Systemless hosts</string>
|
||||
<string name="settings_hosts_summary">Systemless hosts support for Adblock apps</string>
|
||||
|
||||
<string name="settings_development_category">Development</string>
|
||||
<string name="settings_developer_logging_title">Abilita Debug log avanzato</string>
|
||||
<string name="settings_developer_logging_summary">Abilita questa funzione per avere un log più dettagliato.</string>
|
||||
<string name="settings_shell_logging_title">Abilita shell di registrazione dei comandi di debug</string>
|
||||
<string name="settings_shell_logging_summary">Abilita questa funzione per abilitare la registrazione tutti i comandi e l\'output della shell</string>
|
||||
<string name="settings_su_app_adb">Apps e ADB</string>
|
||||
<string name="settings_su_app">Solo Apps</string>
|
||||
<string name="settings_su_adb">Solo ADB</string>
|
||||
<string name="settings_su_disable">Disabilitato</string>
|
||||
<string name="settings_su_request_10">10 secondi</string>
|
||||
<string name="settings_su_request_20">20 secondi</string>
|
||||
<string name="settings_su_request_30">30 secondi</string>
|
||||
<string name="settings_su_request_60">60 secondi</string>
|
||||
<string name="superuser_access">Accesso Superuser</string>
|
||||
<string name="auto_response">Risposta Automatica</string>
|
||||
<string name="request_timeout">Timeout richiesto</string>
|
||||
<string name="superuser_notification">Notifica Superuser</string>
|
||||
<string name="request_timeout_summary">%1$s secondi</string>
|
||||
|
||||
<!-- Strings related to Settings -->
|
||||
<string name="settings_development_category">App Development</string>
|
||||
<string name="settings_developer_logging_title">Abilita Debug Log Avanzato</string>
|
||||
<string name="settings_developer_logging_summary">Check this to enable verbose logging</string>
|
||||
<string name="settings_shell_logging_title">Abilita comandi shell debug log</string>
|
||||
<string name="settings_shell_logging_summary">Check this to enable logging all shell commands and its output</string>
|
||||
|
||||
<!-- Example General settings -->
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Richiesta Superuser</string>
|
||||
<string name="deny_with_str">Nega%1$s</string>
|
||||
<string name="deny">Nega</string>
|
||||
<string name="prompt">Prompt</string>
|
||||
<string name="grant">Concedi</string>
|
||||
<string name="su_warning">Concede il pieno accesso al dispositivo.\nNega se non sei sicuro</string>
|
||||
<string name="forever">Sempre</string>
|
||||
<string name="once">Una volta</string>
|
||||
<string name="tenmin">10 minuti</string>
|
||||
<string name="twentymin">20 minuti</string>
|
||||
<string name="thirtymin">30 minuti</string>
|
||||
<string name="sixtymin">60 minuti</string>
|
||||
<string name="su_allow_toast">%1$s ha ottenuto i permessi Superuser</string>
|
||||
<string name="su_deny_toast">%1$s non ha ottenuto i permessi Superuser</string>
|
||||
<string name="no_apps_found">Nessuna app trovata</string>
|
||||
<string name="su_snack_grant">Permessi Superuser per %1$s ottenuti</string>
|
||||
<string name="su_snack_deny">Permessi Superuser per %1$s non ottenuti</string>
|
||||
<string name="su_snack_notif_on">Notifiche per %1$s abilitate</string>
|
||||
<string name="su_snack_notif_off">Notifiche per %1$s disabilitate</string>
|
||||
<string name="su_snack_log_on">Log per %1$s è abilitato</string>
|
||||
<string name="su_snack_log_off">Log per %1$s è disabilitato</string>
|
||||
<string name="su_snack_revoke">%1$s rights are revoked</string>
|
||||
<string name="su_revoke_title">Revoke?</string>
|
||||
<string name="su_revoke_msg">Confirm to revoke %1$s rights?</string>
|
||||
<string name="toast">Toast</string>
|
||||
<string name="none">Nessuno</string>
|
||||
|
||||
<!-- Example settings for Data & Sync -->
|
||||
|
||||
<!-- Example settings for Notifications -->
|
||||
<!--Superuser logs-->
|
||||
<string name="pid">PID:\u0020</string>
|
||||
<string name="target_uid">Target UID:\u0020</string>
|
||||
<string name="command">Command:\u0020</string>
|
||||
|
||||
</resources>
|
||||
|
@@ -14,7 +14,6 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Magisk v%1$s 설치됨</string>
|
||||
<string name="magisk_version_disable">Magisk v%1$s 비활성화됨</string>
|
||||
<string name="magisk_version_error">Magisk가 설치되지 않음</string>
|
||||
|
||||
<string name="checking_for_updates">업데이트 확인 중…</string>
|
||||
@@ -124,8 +123,6 @@
|
||||
<string name="settings_clear_cache_title">저장소 캐시 비우기</string>
|
||||
<string name="settings_clear_cache_summary">온라인 저장소에 대해 캐시된 정보를 지우고, 온라인에서 정보를 강제로 새로 고칩니다.</string>
|
||||
|
||||
<string name="settings_disable_title">Magisk 비활성화</string>
|
||||
<string name="settings_disable_summary">루팅(MagiskSU)을 제외한 모든 것이 비활성화됩니다.</string>
|
||||
<string name="settings_magiskhide_summary">다양한 감지로부터 Magisk를 숨깁니다.</string>
|
||||
<string name="settings_busybox_title">BusyBox 사용</string>
|
||||
<string name="settings_busybox_summary">xbin 디렉터리에 Magisk의 빌트인 busybox를 바인드합니다.</string>
|
||||
|
@@ -6,6 +6,7 @@
|
||||
<!--Welcome Activity-->
|
||||
<string name="navigation_drawer_open">Otwórz szufladę nawigacji</string>
|
||||
<string name="navigation_drawer_close">Zamknij szufladę nawigacji</string>
|
||||
|
||||
<string name="modules">Moduły</string>
|
||||
<string name="downloads">Pobieranie</string>
|
||||
<string name="superuser">Superuser</string>
|
||||
@@ -16,7 +17,6 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Zainstalowany Magisk v%1$s</string>
|
||||
<string name="magisk_version_disable">Magisk v%1$s wyłaczony</string>
|
||||
<string name="magisk_version_error">Magisk nie jest zainstalowany</string>
|
||||
|
||||
<string name="checking_for_updates">Sprawdzanie aktualizacji…</string>
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">(Auto) %1$s</string>
|
||||
<string name="cannot_auto_detect">(Nie można automatycznie wykryć)</string>
|
||||
<string name="boot_image_title">Lokalizacja Boot Image</string>
|
||||
<string name="detect_button">Wykryj</string>
|
||||
<string name="advanced_settings_title">Zaawansowane Ustawienia</string>
|
||||
@@ -44,9 +45,11 @@
|
||||
<string name="keep_dm_verity">Keep dm-verity</string>
|
||||
<string name="current_magisk_title">Zainstalowana Wersja Magisk: %1$s</string>
|
||||
<string name="install_magisk_title">Ostatnia Wersja Magisk: %1$s</string>
|
||||
|
||||
<string name="uninstall">Odinstaluj</string>
|
||||
<string name="reboot_countdown">Restartuj do %1$d</string>
|
||||
<string name="uninstall_magisk_title">Odinstaluj Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Spowoduje to usunięcie wszystkich modułów, MagiskSU i potencjalnie szyfrowanie danych jeśli nie były szyfrowane \ nCzy na pewno kontynuować?</string>
|
||||
<string name="version_none">(Brak)</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(Nie umieszczono informacji)</string>
|
||||
@@ -121,16 +124,17 @@
|
||||
<string name="process_error">Błąd procesu</string>
|
||||
<string name="internal_storage">Zip jest przechowywany w:\n[Pamięć Wewnętrzna]%1$s</string>
|
||||
<string name="zip_process_title">Przetwarzanie</string>
|
||||
<string name="manual_boot_image">Proszę ręcznie wybrać boot image!</string>
|
||||
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">Ogólne</string>
|
||||
<string name="settings_dark_theme_title">Ciemny Motyw</string>
|
||||
<string name="settings_dark_theme_summary">Włącz ciemny motyw</string>
|
||||
<string name="settings_notification_title">Powiadomienie o Aktualizacji</string>
|
||||
<string name="settings_notification_summary">Pokaż powiadomienie o aktualizacji kiedy będzie dostępna nowa wersja</string>
|
||||
<string name="settings_clear_cache_title">Wyczyść Pamięć Repozytorium</string>
|
||||
<string name="settings_clear_cache_summary">Wymusza na aplikacji odświeżenie online repozytorium</string>
|
||||
|
||||
<string name="settings_disable_title">Wyłącz Magisk</string>
|
||||
<string name="settings_disable_summary">Wszystko zostanie wyłączone za wyjątkiem roota (MagiskSU)</string>
|
||||
<string name="settings_magiskhide_summary">Włącz Hide Magisk dla wykrytych aplikacji</string>
|
||||
<string name="settings_busybox_title">Włącz BusyBox</string>
|
||||
<string name="settings_busybox_summary">Zmień montowanie Magisk z wbudowanego busybox do xbin</string>
|
||||
|
@@ -180,8 +180,6 @@
|
||||
<string name="pid">PID:\u0020</string>
|
||||
<string name="target_uid">Alvo UID:\u0020</string>
|
||||
<string name="command">Comando:\u0020</string>
|
||||
<string name="settings_disable_title">Desativar Magic Mount</string>
|
||||
<string name="settings_disable_summary">Desativa Magic Mount, Isso impedirá que todos os módulos funcionem</string>
|
||||
|
||||
|
||||
|
||||
|
||||
</resources>
|
||||
|
@@ -12,7 +12,6 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Установлен Magisk v%1$s</string>
|
||||
<string name="magisk_version_disable">Magisk v%1$s выключен</string>
|
||||
<string name="magisk_version_error">Magisk не установлен</string>
|
||||
|
||||
<string name="checking_for_updates">Проверка обновлений…</string>
|
||||
@@ -119,8 +118,6 @@
|
||||
<string name="settings_clear_cache_title">Очистить кэш репозиториев</string>
|
||||
<string name="settings_clear_cache_summary">Удалить сохранённую информацию о сетевых репозиториях, чтобы приложение обновило информацию из сети</string>
|
||||
|
||||
<string name="settings_disable_title">Отключить Magisk</string>
|
||||
<string name="settings_disable_summary">Будет выключено все, кроме рута (MagiskSU)</string>
|
||||
<string name="settings_magiskhide_summary">Скрыть Magisk от различных проверок</string>
|
||||
<string name="settings_busybox_title">Включить BusyBox</string>
|
||||
<string name="settings_busybox_summary">Примонтировать встроенный busybox из Magisk в xbin</string>
|
||||
|
192
app/src/main/res/values-tr/strings.xml
Normal file
192
app/src/main/res/values-tr/strings.xml
Normal file
@@ -0,0 +1,192 @@
|
||||
<resources>
|
||||
<!--Welcome Activity-->
|
||||
<string name="navigation_drawer_open">Gezinti çekmecesini aç</string>
|
||||
<string name="navigation_drawer_close">Gezinti çekmecesini kapat</string>
|
||||
<string name="modules">Modüller</string>
|
||||
<string name="downloads">İndir</string>
|
||||
<string name="superuser">Yetkili kullanıcı</string>
|
||||
<string name="log">Günlük</string>
|
||||
<string name="settings">Ayarlar</string>
|
||||
<string name="status">Durum</string>
|
||||
<string name="install">Yükle</string>
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Magisk v%1$s yüklü</string>
|
||||
<string name="magisk_version_error">Magisk yüklü değil</string>
|
||||
|
||||
<string name="checking_for_updates">Güncelleştirmeler denetleniyor…</string>
|
||||
<string name="magisk_update_available">Magisk v%1$.1f mevcut!</string>
|
||||
<string name="cannot_check_updates">Güncelleştirmeler denetlenemiyor, İnternet yok mu?</string>
|
||||
<string name="up_to_date">%1$s\'in son sürümü yüklü</string>
|
||||
<string name="root_error">Rootlu ama root izni yok, izin verilmedi mi?</string>
|
||||
<string name="not_rooted">Rootlu değil</string>
|
||||
<string name="proper_root">Düzgünce rootlandı</string>
|
||||
<string name="safetyNet_check_text">SafetyNet kontrolünü başlatmak için dokunun</string>
|
||||
<string name="checking_safetyNet_status">SafetyNet durumu kontrol ediliyor…</string>
|
||||
<string name="safetyNet_connection_failed">"Google API'ye bağlanılamıyor"</string>
|
||||
<string name="safetyNet_connection_suspended">Google API bağlantısı askıya alındı</string>
|
||||
<string name="safetyNet_error">SafetyNet kontrol edilemiyor, İnternet yok mu?</string>
|
||||
<string name="safetyNet_fail">SafetyNet başarısız: CTS profili uyumsuzluğu</string>
|
||||
<string name="safetyNet_pass">SafetyNet Geçti</string>
|
||||
<string name="root_info_warning">İşlevsellik çok sınırlıdır</string>
|
||||
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">(Otomatik) %1$s</string>
|
||||
<string name="cannot_auto_detect">(Otomatik algılanamıyor)</string>
|
||||
<string name="boot_image_title">Boot İmajı Konumu</string>
|
||||
<string name="detect_button">Algıla</string>
|
||||
<string name="advanced_settings_title">Gelişmiş Ayarlar</string>
|
||||
<string name="keep_force_encryption">Şifrelemeyi zorlamayı sürdür</string>
|
||||
<string name="keep_dm_verity">"Dm-verity'yi koru"</string>
|
||||
<string name="current_magisk_title">Yüklenmiş Magisk Sürümü: %1$s</string>
|
||||
<string name="install_magisk_title">Son Magisk Sürümü: %1$s</string>
|
||||
<string name="uninstall">Kaldır</string>
|
||||
<string name="reboot_countdown">%1$d saniye içinde yeniden başlatılacak</string>
|
||||
<string name="uninstall_magisk_title">"Magisk'i kaldır"</string>
|
||||
<string name="uninstall_magisk_msg">"Bu, tüm modülleri, MagiskSU'yu kaldıracak ve şifrelenmemişse verilerinizi potansiyel olarak şifreleyecektir\nDevam etmek istediğinize emin misiniz?"</string>
|
||||
<string name="version_none">(Hiçbiri)</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(Hiçbir açıklama sağlanmadı)</string>
|
||||
<string name="no_modules_found">Modül yok</string>
|
||||
<string name="update_file_created">Modül sonraki yeniden başlatmada güncellenecek</string>
|
||||
<string name="remove_file_created">Modül sonraki yeniden başlatmada kaldırılacak</string>
|
||||
<string name="remove_file_deleted">Modül sonraki yeniden başlatmada kaldırılmayacak</string>
|
||||
<string name="disable_file_created">Modül sonraki yeniden başlatmada devre dışı bırakılacak</string>
|
||||
<string name="disable_file_removed">Modül sonraki yeniden başlatmada etkinleştirilecek</string>
|
||||
<string name="author">Yapımcı: %1$s</string>
|
||||
<string name="fab_flash_zip">"Modül Zip'ini Yükle"</string>
|
||||
|
||||
<!--Repo Fragment-->
|
||||
<string name="update_available">Güncelleme Mevcut</string>
|
||||
<string name="installed">Yüklenmiş</string>
|
||||
<string name="not_installed">Yüklenmemiş</string>
|
||||
|
||||
<!--Log Fragment-->
|
||||
<string name="menuSaveToSd">"SD'ye kaydet"</string>
|
||||
<string name="menuReload">Yenile</string>
|
||||
<string name="menuClearLog">Günlüğü temizle</string>
|
||||
<string name="logs_cleared">Günlük başarıyla temizlendi</string>
|
||||
<string name="log_is_empty">Günlük boş</string>
|
||||
<string name="logs_save_failed">Günlük SD karta yazılamadı:</string>
|
||||
|
||||
<!--About Activity-->
|
||||
<string name="about">Hakkında</string>
|
||||
<string name="app_developers">Ana geliştiriciler</string>
|
||||
<string name="app_developers_">"<![CDATA[<a href="https://github.com/topjohnwu">topjohnwu</a> tarafından <a href="https://github.com/d8ahazard">Digitalhigh</a> ve <a href="https://github.com/dvdandroid">Dvdandroid</a>]]>'in katkılarıyla oluşturuldu"</string>
|
||||
<string name="app_changelog">Uygulama değişiklikleri</string>
|
||||
<string name="translators">Fatih Fırıncı</string>
|
||||
<string name="app_version">Uygulama sürümü</string>
|
||||
<string name="app_source_code">Kaynak kodu</string>
|
||||
<string name="donation">Bağış</string>
|
||||
<string name="app_translators">Çevirmen</string>
|
||||
<string name="support_thread">Destek konusu</string>
|
||||
|
||||
<!--Toasts, Dialogs-->
|
||||
<string name="permissionNotGranted">Bu özellik harici depolamaya yazma izni olmadan çalışmaz.</string>
|
||||
<string name="no_thanks">Hayır teşekkürler</string>
|
||||
<string name="yes">Evet</string>
|
||||
<string name="ok">Tamam</string>
|
||||
<string name="close">Kapat</string>
|
||||
<string name="repo_install_title">%1$s yükle</string>
|
||||
<string name="repo_install_msg">%1$s yüklensin mi?</string>
|
||||
<string name="download_install">İndir & Yükle</string>
|
||||
<string name="download">İndir</string>
|
||||
<string name="goto_install">\"Yükleme\" bölümüne git</string>
|
||||
<string name="download_file_error">Dosya indirme hatası</string>
|
||||
<string name="install_error">Yükleme hatası!</string>
|
||||
<string name="invalid_zip">Zip Magisk Modülü değil!!</string>
|
||||
<string name="reboot_title">Yükleme başarılı!</string>
|
||||
<string name="reboot_msg">Şimdi yeniden başlatmak istiyor musunuz?</string>
|
||||
<string name="reboot">Yeniden başlat</string>
|
||||
<string name="copying_msg">Zip geçici klasöre kopyalanıyor</string>
|
||||
<string name="zip_install_progress_title">Yükleniyor</string>
|
||||
<string name="zip_unzip_msg">Zip dosyası açılıyor …</string>
|
||||
<string name="zip_process_msg">Zip dosyası işleniyor …</string>
|
||||
<string name="zip_install_progress_msg">%1$s yükleniyor …</string>
|
||||
<string name="no_magisk_title">Magisk Yüklü Değil!</string>
|
||||
<string name="no_magisk_msg">"Magisk'i indirip yüklemek istiyor musunuz?"</string>
|
||||
<string name="downloading_toast">%1$s indiriliyor</string>
|
||||
<string name="magisk_update_title">Yeni Magisk Güncellemesi Mevcut!</string>
|
||||
<string name="settings_reboot_toast">Ayarları uygulamak için yeniden başlatın</string>
|
||||
<string name="release_notes">Sürüm notları</string>
|
||||
<string name="repo_cache_cleared">Repo önbelleği temizlendi</string>
|
||||
<string name="safetyNet_hide_notice">Bu uygulama, SafetyNet kullanıyor\nZaten MagiskHide tarafından varsayılan olarak ele alındı</string>
|
||||
<string name="start_magiskhide">MagiskHide başlatılıyor …</string>
|
||||
<string name="no_magisksu_title">MagiskSU kullanılmıyor!</string>
|
||||
<string name="no_magisksu_msg">"MagiskSU ile rootlu değilsiniz, MagiskHide'ın kendisini kullanmak yeterli olmayabilir!\nResmi olarak desteklenmez ve SafetyNet'i geçmek için ek araçlar (ör. suhide) gerekir."</string>
|
||||
<string name="understand">Anladım</string>
|
||||
<string name="process_error">İşlem hatası</string>
|
||||
<string name="internal_storage">Zip şuraya depolandı:\n[Dahili Hafıza]%1$s</string>
|
||||
<string name="zip_process_title">İşleniyor</string>
|
||||
<string name="manual_boot_image">Lütfen elle bir boot imajı seçin!</string>
|
||||
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">Genel</string>
|
||||
<string name="settings_dark_theme_title">Karanlık Tema</string>
|
||||
<string name="settings_dark_theme_summary">Karanlık temayı etkinleştir</string>
|
||||
<string name="settings_notification_title">Güncelleme Bildirimi</string>
|
||||
<string name="settings_notification_summary">Yeni sürüm kullanılabilir olduğunda güncelleme bildirimlerini göster</string>
|
||||
<string name="settings_clear_cache_title">Repo Önbelleğini Temizle</string>
|
||||
<string name="settings_clear_cache_summary">Çevrimiçi repolar için önbellek bilgilerini temizle, uygulamayı çevrimiçi yenilemeye zorla</string>
|
||||
|
||||
<string name="settings_magiskhide_summary">"Magisk'i çeşitli algılamalardan gizle"</string>
|
||||
<string name="settings_busybox_title">"BusyBox'ı etkinleştir"</string>
|
||||
<string name="settings_busybox_summary">"Magisk'in dahili busybox'ını xbin'e bağla"</string>
|
||||
<string name="settings_hosts_title">Sistemsiz host</string>
|
||||
<string name="settings_hosts_summary">Reklam engelleme uygulamaları için sistemsiz host desteği</string>
|
||||
|
||||
<string name="settings_su_app_adb">Uygulamalar ve ADB</string>
|
||||
<string name="settings_su_app">Sadece uygulamalar</string>
|
||||
<string name="settings_su_adb">Sadece ADB</string>
|
||||
<string name="settings_su_disable">Devre dışı</string>
|
||||
<string name="settings_su_request_10">10 saniye</string>
|
||||
<string name="settings_su_request_20">20 saniye</string>
|
||||
<string name="settings_su_request_30">30 saniye</string>
|
||||
<string name="settings_su_request_60">60 saniye</string>
|
||||
<string name="superuser_access">Yetkili Kullanıcı Erişimi</string>
|
||||
<string name="auto_response">Otomatik Yanıt</string>
|
||||
<string name="request_timeout">İstek Zaman Aşımı</string>
|
||||
<string name="superuser_notification">Yetkili Kullanıcı Bildirimi</string>
|
||||
<string name="request_timeout_summary">%1$s saniye</string>
|
||||
|
||||
<string name="settings_development_category">Uygulama Geliştirme</string>
|
||||
<string name="settings_developer_logging_title">Gelişmiş hata ayıklama günlüğünü etkinleştir</string>
|
||||
<string name="settings_developer_logging_summary">Ayrıntılı günlüğü etkinleştirmek için bunu işaretleyin</string>
|
||||
<string name="settings_shell_logging_title">Kabuk komut hata ayıklama günlüğünü etkinleştir</string>
|
||||
<string name="settings_shell_logging_summary">Tüm kabuk komutlarını ve çıktısını günlüğe kaydetmeyi etkinleştirmek için bunu işaretleyin</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Yetkili Kullanıcı İsteği</string>
|
||||
<string name="deny_with_str">Reddet%1$s</string>
|
||||
<string name="deny">Reddet</string>
|
||||
<string name="prompt">Sor</string>
|
||||
<string name="grant">İzin ver</string>
|
||||
<string name="su_warning">Cihazınıza tam erişim izni verir.\nEmin değilseniz, reddedin!</string>
|
||||
<string name="forever">Daima</string>
|
||||
<string name="once">Bir kere</string>
|
||||
<string name="tenmin">10 dak</string>
|
||||
<string name="twentymin">20 dak</string>
|
||||
<string name="thirtymin">30 dak</string>
|
||||
<string name="sixtymin">60 dak</string>
|
||||
<string name="su_allow_toast">%1$s için yetkili kullanıcı hakları verildi</string>
|
||||
<string name="su_deny_toast">%1$s için yetkili kullanıcı hakları reddedildi</string>
|
||||
<string name="no_apps_found">Hiçbir uygulama bulunamadı</string>
|
||||
<string name="su_snack_grant">%1$s için yetkili kullanıcı hakları verildi</string>
|
||||
<string name="su_snack_deny">%1$s için yetkili kullanıcı hakları reddedildi</string>
|
||||
<string name="su_snack_notif_on">%1$s için bildirimler etkin</string>
|
||||
<string name="su_snack_notif_off">%1$s için bildirimler devre dışı</string>
|
||||
<string name="su_snack_log_on">%1$s için günlük etkin</string>
|
||||
<string name="su_snack_log_off">%1$s için günlük devre dışı</string>
|
||||
<string name="su_snack_revoke">%1$s hakları geri alındı</string>
|
||||
<string name="su_revoke_title">Geri alınsın mı?</string>
|
||||
<string name="su_revoke_msg">%1$s hakları geri alınsın mı?</string>
|
||||
<string name="toast">Pencere</string>
|
||||
<string name="none">Hiçbiri</string>
|
||||
|
||||
<!--Superuser logs-->
|
||||
<string name="pid">PID:\u0020</string>
|
||||
<string name="target_uid">Hedef UID:\u0020</string>
|
||||
<string name="command">Komut:\u0020</string>
|
||||
|
||||
</resources>
|
194
app/src/main/res/values-vi/strings.xml
Normal file
194
app/src/main/res/values-vi/strings.xml
Normal file
@@ -0,0 +1,194 @@
|
||||
<resources>
|
||||
<!--Universal-->
|
||||
|
||||
<!--Welcome Activity-->
|
||||
<string name="navigation_drawer_open">Mở thanh điều hướng</string>
|
||||
<string name="navigation_drawer_close">Đóng thanh điều hướng</string>
|
||||
<string name="modules">Mô-đun</string>
|
||||
<string name="downloads">Tải xuống</string>
|
||||
<string name="superuser">Superuser</string>
|
||||
<string name="log">Nhật ký</string>
|
||||
<string name="settings">Thiết lập</string>
|
||||
<string name="status">Trạng thái</string>
|
||||
<string name="install">Cài đặt</string>
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Đã cài Magisk v%1$s</string>
|
||||
<string name="magisk_version_error">Magisk chưa được cài đặt</string>
|
||||
|
||||
<string name="checking_for_updates">Đang kiểm tra cập nhật…</string>
|
||||
<string name="magisk_update_available">Magisk v%1$.1f available!</string>
|
||||
<string name="cannot_check_updates">Không thể kiểm tra cập nhật, không có Internet?</string>
|
||||
<string name="up_to_date">Đã cài đặt phiên bản mới nhất của %1$s</string>
|
||||
<string name="root_error">Đã root nhưng không có quyền root, chưa được cho phép?</string>
|
||||
<string name="not_rooted">Chưa root</string>
|
||||
<string name="proper_root">Đã root thành công</string>
|
||||
<string name="safetyNet_check_text">Chạm để bắt đầu kiểm tra SafetyNet</string>
|
||||
<string name="checking_safetyNet_status">Đang kiểm tra trạng thái SafetyNet…</string>
|
||||
<string name="safetyNet_connection_failed">Không thể kết nối với API của Google</string>
|
||||
<string name="safetyNet_connection_suspended">Kết nối với API của Google đã dừng</string>
|
||||
<string name="safetyNet_error">Không thể kiểm tra SafetyNet, không có Internet?</string>
|
||||
<string name="safetyNet_fail">SafetyNet thất bại: cấu hình CTS không phù hợp</string>
|
||||
<string name="safetyNet_pass">SafetyNet thành công</string>
|
||||
<string name="root_info_warning">Tính năng bị hạn chế rất nhiều</string>
|
||||
|
||||
<!--Install Fragment-->
|
||||
<string name="auto_detect">(Tự động) %1$s</string>
|
||||
<string name="cannot_auto_detect">(Không thể tự phát hiện)</string>
|
||||
<string name="boot_image_title">Vị trí ảnh khởi động</string>
|
||||
<string name="detect_button">Tìm</string>
|
||||
<string name="advanced_settings_title">Thiết lập nâng cao</string>
|
||||
<string name="keep_force_encryption">Giữ bắt buộc mã hoá</string>
|
||||
<string name="keep_dm_verity">Giữ dm-verity</string>
|
||||
<string name="current_magisk_title">Đã cài đặt Magisk phiên bản: %1$s</string>
|
||||
<string name="install_magisk_title">Phiên bản Magisk mới nhất: %1$s</string>
|
||||
<string name="uninstall">Gỡ bỏ</string>
|
||||
<string name="reboot_countdown">Khởi động lại trong %1$d</string>
|
||||
<string name="uninstall_magisk_title">Gỡ bỏ Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Việc này sẽ xoá tất cả các mô-đun, MagiskSU và có khả năng sẽ mã hoá dữ liệu nếu chưa được mã hoá\nBạn chắc muốn tiếp tục?</string>
|
||||
<string name="version_none">(Không có)</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(Không có thông tin được cung cấp)</string>
|
||||
<string name="no_modules_found">Không tìm thấy mô-đun</string>
|
||||
<string name="update_file_created">Mô-đun sẽ được cập nhật ở lần khởi động lại kế tiếp</string>
|
||||
<string name="remove_file_created">Mô-đun sẽ được xoá bỏ ở lần khởi động lại kế tiếp</string>
|
||||
<string name="remove_file_deleted">Mô-đun sẽ không được xoá bỏ ở lần khởi động lại kế tiếp</string>
|
||||
<string name="disable_file_created">Mô-đun sẽ bị vô hiệu ở lần khởi động lại kế tiếp</string>
|
||||
<string name="disable_file_removed">Mô-đun sẽ được kích hoạt ở lần khởi động lại kế tiếp</string>
|
||||
<string name="author">Tạo bởi %1$s</string>
|
||||
<string name="fab_flash_zip">Cài file zip của Mô-đun</string>
|
||||
|
||||
<!--Repo Fragment-->
|
||||
<string name="update_available">Có cập nhật mới</string>
|
||||
<string name="installed">Đã được cài đặt</string>
|
||||
<string name="not_installed">Chưa được cài đặt</string>
|
||||
|
||||
<!--Log Fragment-->
|
||||
<string name="menuSaveToSd">Lưu vào thẻ nhớ</string>
|
||||
<string name="menuReload">Tải lại</string>
|
||||
<string name="menuClearLog">Xoá nhật ký ngay</string>
|
||||
<string name="logs_cleared">Đã xoá nhật ký thành công</string>
|
||||
<string name="log_is_empty">Nhật ký trống</string>
|
||||
<string name="logs_save_failed">Không thể ghi nhật ký ra thẻ nhớ:</string>
|
||||
|
||||
<!--About Activity-->
|
||||
<string name="about">Thông tin</string>
|
||||
<string name="app_developers">Nhà phát triển chính</string>
|
||||
<string name="app_developers_"><![CDATA[Ứng dụng do <a href="https://github.com/topjohnwu">topjohnwu</a> viết, phối hợp với <a href="https://github.com/d8ahazard">Digitalhigh</a> và <a href="https://github.com/dvdandroid">Dvdandroid</a>.]]></string>
|
||||
<string name="app_changelog">Nhật ký thay đổi của ứng dụng</string>
|
||||
<string name="translators"><![CDATA[<a href="https://github.com/thanhtai2009">thanhtai2009@tekcafe.vn</a>]]></string>
|
||||
<string name="app_version">Phiên bản ứng dụng</string>
|
||||
<string name="app_source_code">Mã nguồn</string>
|
||||
<string name="donation">Ủng hộ</string>
|
||||
<string name="app_translators">Người dịch ứng dụng</string>
|
||||
<string name="support_thread">Chủ đề hỗ trợ</string>
|
||||
|
||||
<!--Toasts, Dialogs-->
|
||||
<string name="permissionNotGranted">Tính năng này không hoạt động nếu thiếu quyền ghi vào bộ nhớ ngoài.</string>
|
||||
<string name="no_thanks">Không, cảm ơn</string>
|
||||
<string name="yes">Có</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="close">Đóng</string>
|
||||
<string name="repo_install_title">Cài đặt %1$s</string>
|
||||
<string name="repo_install_msg">Bạn muốn cài đặt %1$s ?</string>
|
||||
<string name="download_install">Tải xuống & Cài đặt</string>
|
||||
<string name="download">Tải xuống</string>
|
||||
<string name="goto_install">Mở phần \"Cài đặt\"</string>
|
||||
<string name="download_file_error">Lỗi tải tập tin</string>
|
||||
<string name="install_error">Lỗi cài đặt!</string>
|
||||
<string name="invalid_zip">Tập tin zip không phải mô-đun Magisk!!</string>
|
||||
<string name="reboot_title">Cài đặt thành công!</string>
|
||||
<string name="reboot_msg">Bạn muốn khởi động lại ngay chứ?</string>
|
||||
<string name="reboot">Khởi động lại</string>
|
||||
<string name="copying_msg">Đang chép zip vào thư mục tạm</string>
|
||||
<string name="zip_install_progress_title">Đang cài đặt</string>
|
||||
<string name="zip_unzip_msg">Đang giải nén tập tin …</string>
|
||||
<string name="zip_process_msg">Đang xử lý tập tin zip …</string>
|
||||
<string name="zip_install_progress_msg">Đang cài đặt %1$s …</string>
|
||||
<string name="no_magisk_title">Chưa cài Magisk!</string>
|
||||
<string name="no_magisk_msg">Bạn muốn tải xuống và cài đặt Magisk chứ?</string>
|
||||
<string name="downloading_toast">Đang tải xuống %1$s</string>
|
||||
<string name="magisk_update_title">Có cập nhật Magisk mới!</string>
|
||||
<string name="settings_reboot_toast">Khởi động lại để áp dụng thiết lập</string>
|
||||
<string name="release_notes">Ghi chú phát hành</string>
|
||||
<string name="repo_cache_cleared">Đã xoá bộ đệm kho</string>
|
||||
<string name="safetyNet_hide_notice">Ứng dụng này dùng SafetyNet\nĐã được MagiskHide xử lý theo mặc định</string>
|
||||
<string name="start_magiskhide">Đang khởi động MagiskHide …</string>
|
||||
<string name="no_magisksu_title">Không dùng MagiskSU!</string>
|
||||
<string name="no_magisksu_msg">Bạn không root với MagiskSU, sử dụng mỗi MagiskHide có thể sẽ không đủ hiệu quả!\nViệc này không được hỗ trợ chính thức và có thể bạn cần thêm công cụ khác (suhide chẳng hạn) để vượt Safety Net.</string>
|
||||
<string name="understand">Tôi hiểu</string>
|
||||
<string name="process_error">Lỗi xử lý</string>
|
||||
<string name="internal_storage">Tập tin zip được lưu vào:\n[Bộ nhớ trong]%1$s</string>
|
||||
<string name="zip_process_title">Đang xử lý</string>
|
||||
<string name="manual_boot_image">Hãy tự chọn một ảnh khởi động!</string>
|
||||
|
||||
<!--Settings Activity -->
|
||||
<string name="settings_general_category">Chung</string>
|
||||
<string name="settings_dark_theme_title">Chủ đề tối</string>
|
||||
<string name="settings_dark_theme_summary">Dùng chủ đề tối</string>
|
||||
<string name="settings_notification_title">Thông báo cập nhật</string>
|
||||
<string name="settings_notification_summary">Hiện thông báo cập nhật khi có phiên bản mới</string>
|
||||
<string name="settings_clear_cache_title">Xoá bộ đệm kho</string>
|
||||
<string name="settings_clear_cache_summary">Xoá thông tin truy cập nhật về các kho mô-đun, buộc ứng dụng làm mới trực tuyến</string>
|
||||
|
||||
<string name="settings_magiskhide_summary">Ẩn Magisk khỏi nhiều phương thức phát hiện</string>
|
||||
<string name="settings_busybox_title">Dùng BusyBox</string>
|
||||
<string name="settings_busybox_summary">Gắn kết busy có sẵn của Magisk tới xbin</string>
|
||||
<string name="settings_hosts_title">Systemless hosts</string>
|
||||
<string name="settings_hosts_summary">Systemless hosts hỗ trợ các ứng dụng chặn quảng cáo</string>
|
||||
|
||||
<string name="settings_su_app_adb">Ứng dụng và ADB</string>
|
||||
<string name="settings_su_app">Chỉ ứng dụng</string>
|
||||
<string name="settings_su_adb">Chỉ ADB</string>
|
||||
<string name="settings_su_disable">Đã vô hiệu</string>
|
||||
<string name="settings_su_request_10">10 giây</string>
|
||||
<string name="settings_su_request_20">20 giây</string>
|
||||
<string name="settings_su_request_30">30 giây</string>
|
||||
<string name="settings_su_request_60">60 giây</string>
|
||||
<string name="superuser_access">Truy nhập Superuser</string>
|
||||
<string name="auto_response">Tự phản hồi</string>
|
||||
<string name="request_timeout">Thời gian chờ yêu cầu</string>
|
||||
<string name="superuser_notification">Thông báo Superuser</string>
|
||||
<string name="request_timeout_summary">%1$s giây</string>
|
||||
|
||||
<string name="settings_development_category">Phát triển ứng dụng</string>
|
||||
<string name="settings_developer_logging_title">Kích hoạt ghi nhận gỡ rối nâng cao</string>
|
||||
<string name="settings_developer_logging_summary">Chọn để kích hoạt ghi nhận chi tiết</string>
|
||||
<string name="settings_shell_logging_title">Kích hoạt ghi nhận gỡ rối lệnh shell</string>
|
||||
<string name="settings_shell_logging_summary">Chọn để kích hoạt ghi nhận tất cả các lệnh shell và kết quả xuất ra</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Yêu cầu Superuser</string>
|
||||
<string name="deny_with_str">Từ chối%1$s</string>
|
||||
<string name="deny">Từ chối</string>
|
||||
<string name="prompt">Nhắc nhở</string>
|
||||
<string name="grant">Cấp phép</string>
|
||||
<string name="su_warning">Cấp toàn quyền truy cập thiết bị.\nTừ chối nếu bạn không chắc chắn!</string>
|
||||
<string name="forever">Mãi mãi</string>
|
||||
<string name="once">Một lần</string>
|
||||
<string name="tenmin">10 phút</string>
|
||||
<string name="twentymin">20 phút</string>
|
||||
<string name="thirtymin">30 phút</string>
|
||||
<string name="sixtymin">60 phút</string>
|
||||
<string name="su_allow_toast">%1$s đã được cấp quyền Superuser</string>
|
||||
<string name="su_deny_toast">Đã từ chối cấp quyền Superuser cho %1$s</string>
|
||||
<string name="no_apps_found">Không tìm thấy ứng dụng</string>
|
||||
<string name="su_snack_grant">Quyền Superuser của %1$s đã được cấp</string>
|
||||
<string name="su_snack_deny">Quyền Superuser của %1$s đã bị từ chối</string>
|
||||
<string name="su_snack_notif_on">Thông báo của %1$s đã được kích hoạt</string>
|
||||
<string name="su_snack_notif_off">Thông báo của %1$s đã bị vô hiệu</string>
|
||||
<string name="su_snack_log_on">Ghi nhận của %1$s đã được kích hoạt</string>
|
||||
<string name="su_snack_log_off">Ghi nhận của %1$s đã bị vô hiệu</string>
|
||||
<string name="su_snack_revoke">Quyền của %1$s đã được thu hồi</string>
|
||||
<string name="su_revoke_title">Thu hồi?</string>
|
||||
<string name="su_revoke_msg">Xác nhận thu hồi quyền của %1$s?</string>
|
||||
<string name="toast">Thông báo ngắn</string>
|
||||
<string name="none">Không có</string>
|
||||
|
||||
<!--Superuser logs-->
|
||||
<string name="pid">PID:\u0020</string>
|
||||
<string name="target_uid">Target UID:\u0020</string>
|
||||
<string name="command">Command:\u0020</string>
|
||||
|
||||
</resources>
|
@@ -14,7 +14,7 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">已安装 Magisk v%1$s</string>
|
||||
<string name="magisk_version_disable">已禁用 Magisk v%1$s</string>
|
||||
<string name="magisk_version_core_only">已安装 Magisk v%1$s (仅核心功能)</string>
|
||||
<string name="magisk_version_error">未安装 Magisk</string>
|
||||
|
||||
<string name="checking_for_updates">正在检查更新…</string>
|
||||
@@ -128,8 +128,7 @@
|
||||
<string name="settings_clear_cache_title">清除资源库缓存</string>
|
||||
<string name="settings_clear_cache_summary">清除已缓存的在线资源库信息,强制刷新在线数据</string>
|
||||
|
||||
<string name="settings_disable_title">禁用 Magisk</string>
|
||||
<string name="settings_disable_summary">除 ROOT (MagiskSU) 以外,其他都将被禁用</string>
|
||||
<string name="settings_core_only_summary">仅启用核心功能,所有模组将不会被载入。MagiskSU丶MagiskHide丶systemless hosts丶和 busybox 仍会持续运作</string>
|
||||
<string name="settings_magiskhide_summary">隐藏 Magisk 使其不被多种方法检测到</string>
|
||||
<string name="settings_busybox_title">启用 BusyBox</string>
|
||||
<string name="settings_busybox_summary">将 Magisk 内置的 Busybox 挂载到 xbin</string>
|
||||
@@ -188,5 +187,6 @@
|
||||
<string name="pid">PID:\u0020</string>
|
||||
<string name="target_uid">目标 UID:\u0020</string>
|
||||
<string name="command">命令:\u0020</string>
|
||||
<string name="settings_core_only_title">Magisk 核心功能模式</string>
|
||||
|
||||
</resources>
|
||||
|
@@ -14,7 +14,6 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">已安裝 Magisk v%1$s</string>
|
||||
<string name="magisk_version_disable">已禁用 Magisk v%1$s</string>
|
||||
<string name="magisk_version_error">未安裝 Magisk</string>
|
||||
|
||||
<string name="checking_for_updates">正在檢查更新…</string>
|
||||
@@ -120,8 +119,7 @@
|
||||
<string name="settings_clear_cache_title">清除資源庫快取</string>
|
||||
<string name="settings_clear_cache_summary">清除已暫存的在線資源庫快取,強制刷新在線數據</string>
|
||||
|
||||
<string name="settings_disable_title">禁用 Magisk</string>
|
||||
<string name="settings_disable_summary">除 ROOT (MagiskSU) 以外,其他都將被禁用</string>
|
||||
<string name="settings_core_only_title">Magisk 核心功能模式</string>
|
||||
<string name="settings_magiskhide_summary">隱藏 Magisk 使其不被多種方法檢測到</string>
|
||||
<string name="settings_busybox_title">啟用 BusyBox</string>
|
||||
<string name="settings_busybox_summary">將 Magisk 內置的 Busybox 掛載到 xbin</string>
|
||||
@@ -191,5 +189,9 @@
|
||||
<string name="version_none">(無)</string>
|
||||
<string name="manual_boot_image">請手動選取 boot 映像位置</string>
|
||||
<string name="cannot_auto_detect">(無法自動偵測)</string>
|
||||
<string name="settings_notification_summary">有更新的時候顯示通知</string>
|
||||
<string name="settings_notification_title">更新通知</string>
|
||||
<string name="magisk_version_core_only">已安裝 Magisk v%1$s (僅核心功能)</string>
|
||||
<string name="settings_core_only_summary">僅啟用核心功能,所有模組將不會被載入。MagiskSU、MagiskHide、systemless hosts、和 busybox 仍會持續運作</string>
|
||||
|
||||
</resources>
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version">Installed Magisk v%1$s</string>
|
||||
<string name="magisk_version_disable">Magisk v%1$s disabled</string>
|
||||
<string name="magisk_version_core_only">Installed Magisk v%1$s (Core Only Mode)</string>
|
||||
<string name="magisk_version_error">Magisk not installed</string>
|
||||
|
||||
<string name="checking_for_updates">Checking for updates…</string>
|
||||
@@ -131,11 +131,13 @@
|
||||
<string name="settings_general_category">General</string>
|
||||
<string name="settings_dark_theme_title">Dark Theme</string>
|
||||
<string name="settings_dark_theme_summary">Enable dark theme</string>
|
||||
<string name="settings_notification_title">Update Notification</string>
|
||||
<string name="settings_notification_summary">Show update notifications when new version is available</string>
|
||||
<string name="settings_clear_cache_title">Clear Repo Cache</string>
|
||||
<string name="settings_clear_cache_summary">Clear the cached information for online repos, forces the app to refresh online</string>
|
||||
|
||||
<string name="settings_disable_title">Disable Magisk</string>
|
||||
<string name="settings_disable_summary">Everything will be disabled except root (MagiskSU)</string>
|
||||
<string name="settings_core_only_title">Magisk Core Only Mode</string>
|
||||
<string name="settings_core_only_summary">Enable only core features, all modules will not be loaded. MagiskSU, MagiskHide, systemless hosts, and busybox will still be enabled</string>
|
||||
<string name="settings_magiskhide_summary">Hide Magisk from various detections</string>
|
||||
<string name="settings_busybox_title">Enable BusyBox</string>
|
||||
<string name="settings_busybox_summary">Bind mount Magisk\'s built-in busybox to xbin</string>
|
||||
|
@@ -10,6 +10,11 @@
|
||||
android:summary="@string/settings_dark_theme_summary"
|
||||
android:key="dark_theme" />
|
||||
|
||||
<SwitchPreference
|
||||
android:title="@string/settings_notification_title"
|
||||
android:summary="@string/settings_notification_summary"
|
||||
android:key="notification" />
|
||||
|
||||
<Preference
|
||||
android:key="clear"
|
||||
android:title="@string/settings_clear_cache_title"
|
||||
@@ -23,8 +28,8 @@
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="disable"
|
||||
android:title="@string/settings_disable_title"
|
||||
android:summary="@string/settings_disable_summary" />
|
||||
android:title="@string/settings_core_only_title"
|
||||
android:summary="@string/settings_core_only_summary" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="busybox"
|
||||
|
@@ -6,7 +6,7 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.3.0-beta4'
|
||||
classpath 'com.android.tools.build:gradle:2.3.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
Reference in New Issue
Block a user