mirror of
https://github.com/topjohnwu/Magisk
synced 2025-11-01 12:30:51 +01:00
Compare commits
32 Commits
manager-v5
...
manager-v5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e79d764148 | ||
|
|
ebbee0dc43 | ||
|
|
ed0c16e201 | ||
|
|
209fdf349a | ||
|
|
f49f2afacd | ||
|
|
8c6330a3c4 | ||
|
|
337b777125 | ||
|
|
1b756e8d96 | ||
|
|
52d478df1a | ||
|
|
0c782edf21 | ||
|
|
e3948d295e | ||
|
|
5f2c742a5c | ||
|
|
b30c77aab9 | ||
|
|
a5916b9c49 | ||
|
|
453180e30b | ||
|
|
8bd432d391 | ||
|
|
c9d3e20aef | ||
|
|
d5408d1f09 | ||
|
|
f334532aba | ||
|
|
be77c09f3d | ||
|
|
7de6a92753 | ||
|
|
36f76f5a14 | ||
|
|
b84523d557 | ||
|
|
2c78c415e9 | ||
|
|
79ccb30dd2 | ||
|
|
3c566becf6 | ||
|
|
151ca593af | ||
|
|
4132eacba0 | ||
|
|
06e6151816 | ||
|
|
70277d4edd | ||
|
|
d21d2f1a9c | ||
|
|
74a7be996f |
26
build.gradle
26
build.gradle
@@ -1,15 +1,15 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 27
|
||||
buildToolsVersion "27.0.3"
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.topjohnwu.magisk"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 27
|
||||
versionCode 105
|
||||
versionName "5.6.1"
|
||||
targetSdkVersion rootProject.ext.compileSdkVersion
|
||||
versionCode 112
|
||||
versionName "5.6.4"
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
argument('butterknife.debuggable', 'false')
|
||||
@@ -21,7 +21,7 @@ android {
|
||||
release {
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
@@ -37,20 +37,14 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
maven { url "https://jitpack.io" }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
implementation project(':utils')
|
||||
implementation 'com.github.topjohnwu:libsu:1.1.1'
|
||||
implementation 'com.android.support:recyclerview-v7:27.0.2'
|
||||
implementation 'com.android.support:cardview-v7:27.0.2'
|
||||
implementation 'com.android.support:design:27.0.2'
|
||||
implementation 'com.android.support:support-v4:27.0.2'
|
||||
implementation "com.android.support:recyclerview-v7:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.android.support:cardview-v7:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.android.support:design:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}"
|
||||
implementation 'com.jakewharton:butterknife:8.8.1'
|
||||
implementation 'com.atlassian.commonmark:commonmark:0.10.0'
|
||||
implementation 'org.kamranzafar:jtar:2.3'
|
||||
|
||||
@@ -159,8 +159,8 @@ public class MagiskFragment extends Fragment
|
||||
|
||||
safetyNetStatusText.setText(R.string.safetyNet_check_text);
|
||||
|
||||
mm.safetyNetDone.hasPublished = false;
|
||||
mm.updateCheckDone.hasPublished = false;
|
||||
mm.safetyNetDone.reset();
|
||||
mm.updateCheckDone.reset();
|
||||
mm.remoteMagiskVersionString = null;
|
||||
mm.remoteMagiskVersionCode = -1;
|
||||
collapse();
|
||||
@@ -176,11 +176,11 @@ public class MagiskFragment extends Fragment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
if (topic == mm.updateCheckDone) {
|
||||
updateCheckUI();
|
||||
} else if (topic == mm.safetyNetDone) {
|
||||
updateSafetyNetUI((int) result);
|
||||
updateSafetyNetUI((int) topic.getResults()[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ public class MagiskHideFragment extends Fragment implements Topic.Subscriber {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
mSwipeRefreshLayout.setRefreshing(false);
|
||||
appAdapter.filter(lastFilter);
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ public class MainActivity extends Activity
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
recreate();
|
||||
}
|
||||
|
||||
@@ -190,22 +190,22 @@ public class MainActivity extends Activity
|
||||
navigationView.setCheckedItem(itemId);
|
||||
switch (itemId) {
|
||||
case R.id.magisk:
|
||||
displayFragment(new MagiskFragment(), "magisk", true);
|
||||
displayFragment(new MagiskFragment(), true);
|
||||
break;
|
||||
case R.id.superuser:
|
||||
displayFragment(new SuperuserFragment(), "superuser", true);
|
||||
displayFragment(new SuperuserFragment(), true);
|
||||
break;
|
||||
case R.id.modules:
|
||||
displayFragment(new ModulesFragment(), "modules", true);
|
||||
displayFragment(new ModulesFragment(), true);
|
||||
break;
|
||||
case R.id.downloads:
|
||||
displayFragment(new ReposFragment(), "downloads", true);
|
||||
displayFragment(new ReposFragment(), true);
|
||||
break;
|
||||
case R.id.magiskhide:
|
||||
displayFragment(new MagiskHideFragment(), Const.Key.MAGISKHIDE, true);
|
||||
displayFragment(new MagiskHideFragment(), true);
|
||||
break;
|
||||
case R.id.log:
|
||||
displayFragment(new LogFragment(), "log", false);
|
||||
displayFragment(new LogFragment(), false);
|
||||
break;
|
||||
case R.id.settings:
|
||||
startActivity(new Intent(this, SettingsActivity.class));
|
||||
@@ -218,12 +218,13 @@ public class MainActivity extends Activity
|
||||
}
|
||||
}
|
||||
|
||||
private void displayFragment(@NonNull Fragment navFragment, String tag, boolean setElevation) {
|
||||
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
|
||||
private void displayFragment(@NonNull Fragment navFragment, boolean setElevation) {
|
||||
supportInvalidateOptionsMenu();
|
||||
transaction.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out);
|
||||
transaction.replace(R.id.content_frame, navFragment, tag).commitNow();
|
||||
if (setElevation) toolbar.setElevation(toolbarElevation);
|
||||
else toolbar.setElevation(0);
|
||||
getSupportFragmentManager()
|
||||
.beginTransaction()
|
||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
.replace(R.id.content_frame, navFragment)
|
||||
.commitNow();
|
||||
toolbar.setElevation(setElevation ? toolbarElevation : 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class ModulesFragment extends Fragment implements Topic.Subscriber {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
updateUI();
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import butterknife.Unbinder;
|
||||
public class ReposFragment extends Fragment implements Topic.Subscriber {
|
||||
|
||||
private Unbinder unbinder;
|
||||
private MagiskManager mm;
|
||||
@BindView(R.id.recyclerView) RecyclerView recyclerView;
|
||||
@BindView(R.id.empty_rv) TextView emptyRv;
|
||||
@BindView(R.id.swipeRefreshLayout) SwipeRefreshLayout mSwipeRefreshLayout;
|
||||
@@ -44,8 +45,9 @@ public class ReposFragment extends Fragment implements Topic.Subscriber {
|
||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_repos, container, false);
|
||||
unbinder = ButterKnife.bind(this, view);
|
||||
mm = getApplication();
|
||||
|
||||
mSwipeRefreshLayout.setRefreshing(true);
|
||||
mSwipeRefreshLayout.setRefreshing(mm.repoLoadDone.isPending());
|
||||
|
||||
mSwipeRefreshLayout.setOnRefreshListener(() -> {
|
||||
recyclerView.setVisibility(View.VISIBLE);
|
||||
@@ -60,7 +62,7 @@ public class ReposFragment extends Fragment implements Topic.Subscriber {
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
adapter = new ReposAdapter(getApplication().repoDB, getApplication().moduleMap);
|
||||
adapter = new ReposAdapter(mm.repoDB, mm.moduleMap);
|
||||
recyclerView.setAdapter(adapter);
|
||||
super.onResume();
|
||||
}
|
||||
@@ -72,7 +74,7 @@ public class ReposFragment extends Fragment implements Topic.Subscriber {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
mSwipeRefreshLayout.setRefreshing(false);
|
||||
recyclerView.setVisibility(adapter.getItemCount() == 0 ? View.GONE : View.VISIBLE);
|
||||
emptyRv.setVisibility(adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
|
||||
@@ -80,7 +82,7 @@ public class ReposFragment extends Fragment implements Topic.Subscriber {
|
||||
|
||||
@Override
|
||||
public Topic[] getSubscription() {
|
||||
return new Topic[] { getApplication().repoLoadDone };
|
||||
return new Topic[] { mm.repoLoadDone };
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -103,7 +105,6 @@ public class ReposFragment extends Fragment implements Topic.Subscriber {
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
MagiskManager mm = getApplication();
|
||||
if (item.getItemId() == R.id.repo_sort) {
|
||||
new AlertDialog.Builder(getActivity())
|
||||
.setTitle(R.string.sorting_order)
|
||||
|
||||
@@ -69,7 +69,7 @@ public class SettingsActivity extends Activity implements Topic.Subscriber {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
recreate();
|
||||
}
|
||||
|
||||
@@ -159,9 +159,7 @@ public class SettingsActivity extends Activity implements Topic.Subscriber {
|
||||
if (mm.magiskVersionCode >= 1440) {
|
||||
if (mm.getPackageName().equals(Const.ORIG_PKG_NAME)) {
|
||||
hideManager.setOnPreferenceClickListener((pref) -> {
|
||||
Utils.runWithPermission(getActivity(),
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
() -> new HideManager(getActivity()).exec());
|
||||
new HideManager(getActivity()).exec();
|
||||
return true;
|
||||
});
|
||||
generalCatagory.removePreference(restoreManager);
|
||||
@@ -188,18 +186,6 @@ public class SettingsActivity extends Activity implements Topic.Subscriber {
|
||||
generalCatagory.removePreference(hideManager);
|
||||
}
|
||||
|
||||
if (mm.getPackageName().equals(Const.ORIG_PKG_NAME) && mm.magiskVersionCode >= 1440) {
|
||||
hideManager.setOnPreferenceClickListener((pref) -> {
|
||||
Utils.runWithPermission(getActivity(),
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
() -> new HideManager(getActivity()).exec());
|
||||
return true;
|
||||
});
|
||||
generalCatagory.removePreference(restoreManager);
|
||||
} else {
|
||||
generalCatagory.removePreference(hideManager);
|
||||
}
|
||||
|
||||
if (!Shell.rootAccess() || (Const.USER_ID > 0 &&
|
||||
mm.multiuserMode == Const.Value.MULTIUSER_MODE_OWNER_MANAGED)) {
|
||||
prefScreen.removePreference(suCategory);
|
||||
@@ -325,7 +311,7 @@ public class SettingsActivity extends Activity implements Topic.Subscriber {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTopicPublished(Topic topic, Object result) {
|
||||
public void onTopicPublished(Topic topic) {
|
||||
setLocalePreference((ListPreference) findPreference(Const.Key.LOCALE));
|
||||
}
|
||||
|
||||
|
||||
@@ -17,11 +17,6 @@ import com.topjohnwu.superuser.Shell;
|
||||
|
||||
public class SplashActivity extends Activity {
|
||||
|
||||
@Override
|
||||
public int getDarkTheme() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
@@ -65,30 +65,17 @@ public class ApplicationAdapter extends RecyclerView.Adapter<ApplicationAdapter.
|
||||
holder.appName.setText(info.loadLabel(pm));
|
||||
holder.appPackage.setText(info.packageName);
|
||||
|
||||
// Remove all listeners
|
||||
holder.itemView.setOnClickListener(null);
|
||||
holder.checkBox.setOnCheckedChangeListener(null);
|
||||
|
||||
if (Const.SN_DEFAULTLIST.contains(info.packageName)) {
|
||||
holder.checkBox.setChecked(true);
|
||||
holder.checkBox.setEnabled(false);
|
||||
holder.itemView.setOnClickListener(v ->
|
||||
SnackbarMaker.make(holder.itemView,
|
||||
R.string.safetyNet_hide_notice, Snackbar.LENGTH_LONG).show()
|
||||
);
|
||||
} else {
|
||||
holder.checkBox.setEnabled(true);
|
||||
holder.checkBox.setChecked(mHideList.contains(info.packageName));
|
||||
holder.checkBox.setOnCheckedChangeListener((v, isChecked) -> {
|
||||
if (isChecked) {
|
||||
Shell.Async.su("magiskhide --add " + info.packageName);
|
||||
mHideList.add(info.packageName);
|
||||
} else {
|
||||
Shell.Async.su("magiskhide --rm " + info.packageName);
|
||||
mHideList.remove(info.packageName);
|
||||
}
|
||||
});
|
||||
}
|
||||
holder.checkBox.setChecked(mHideList.contains(info.packageName));
|
||||
holder.checkBox.setOnCheckedChangeListener((v, isChecked) -> {
|
||||
if (isChecked) {
|
||||
Shell.Async.su("magiskhide --add " + info.packageName);
|
||||
mHideList.add(info.packageName);
|
||||
} else {
|
||||
Shell.Async.su("magiskhide --rm " + info.packageName);
|
||||
mHideList.remove(info.packageName);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -11,9 +11,10 @@ import com.topjohnwu.magisk.utils.Utils;
|
||||
import com.topjohnwu.magisk.utils.ZipUtils;
|
||||
import com.topjohnwu.superuser.Shell;
|
||||
import com.topjohnwu.superuser.ShellUtils;
|
||||
import com.topjohnwu.superuser.io.SuFile;
|
||||
import com.topjohnwu.superuser.io.SuFileOutputStream;
|
||||
import com.topjohnwu.utils.JarMap;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.jar.JarEntry;
|
||||
@@ -104,8 +105,7 @@ public class HideManager extends ParallelTask<Void, Void, Boolean> {
|
||||
MagiskManager mm = MagiskManager.get();
|
||||
|
||||
// Generate a new unhide app with random package name
|
||||
File repack = new File(Const.EXTERNAL_PATH, "repack.apk");
|
||||
repack.getParentFile().mkdirs();
|
||||
SuFile repack = new SuFile("/data/local/tmp/repack.apk", true);
|
||||
String pkg = genPackageName("com.", Const.ORIG_PKG_NAME.length());
|
||||
|
||||
try {
|
||||
@@ -123,7 +123,7 @@ public class HideManager extends ParallelTask<Void, Void, Boolean> {
|
||||
apk.getOutputStream(je).write(xml);
|
||||
|
||||
// Sign the APK
|
||||
ZipUtils.signZip(apk, repack);
|
||||
ZipUtils.signZip(apk, new SuFileOutputStream(repack));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
|
||||
@@ -42,6 +42,7 @@ public class InstallMagisk extends ParallelTask<Void, Void, Boolean> {
|
||||
private List<String> console, logs;
|
||||
private String mBootLocation;
|
||||
private int mode;
|
||||
private File install;
|
||||
|
||||
private InstallMagisk(Activity context, List<String> console, List<String> logs, Uri zip) {
|
||||
super(context);
|
||||
@@ -66,10 +67,10 @@ public class InstallMagisk extends ParallelTask<Void, Void, Boolean> {
|
||||
protected Boolean doInBackground(Void... voids) {
|
||||
MagiskManager mm = MagiskManager.get();
|
||||
|
||||
File install = new File(
|
||||
install = new File(
|
||||
(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ?
|
||||
mm.createDeviceProtectedStorageContext() :
|
||||
mm).getFilesDir().getParent()
|
||||
mm.createDeviceProtectedStorageContext() : mm)
|
||||
.getFilesDir().getParent()
|
||||
, "install");
|
||||
Shell.Sync.sh("rm -rf " + install);
|
||||
|
||||
@@ -249,6 +250,7 @@ public class InstallMagisk extends ParallelTask<Void, Void, Boolean> {
|
||||
protected void onPostExecute(Boolean result) {
|
||||
FlashActivity activity = (FlashActivity) getActivity();
|
||||
if (!result) {
|
||||
Shell.Async.sh("rm -rf " + install);
|
||||
console.add("! Installation failed");
|
||||
activity.reboot.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public class UpdateRepos extends ParallelTask<Void, Void, Void> {
|
||||
MagiskManager mm = MagiskManager.get();
|
||||
prefs = mm.prefs;
|
||||
repoDB = mm.repoDB;
|
||||
mm.repoLoadDone.hasPublished = false;
|
||||
mm.repoLoadDone.reset();
|
||||
// Legacy data cleanup
|
||||
File old = new File(mm.getApplicationInfo().dataDir + "/shared_prefs", "RepoMap.xml");
|
||||
if (old.exists() || prefs.getString("repomap", null) != null) {
|
||||
@@ -160,6 +160,11 @@ public class UpdateRepos extends ParallelTask<Void, Void, Void> {
|
||||
ReposFragment.adapter.notifyDBChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
MagiskManager.get().repoLoadDone.setPending();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
etags = new ArrayList<>(Arrays.asList(prefs.getString(Const.Key.ETAG_KEY, "").split(",")));
|
||||
|
||||
@@ -33,7 +33,9 @@ public abstract class Activity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
@StyleRes
|
||||
abstract public int getDarkTheme();
|
||||
public int getDarkTheme() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@@ -41,7 +43,7 @@ public abstract class Activity extends AppCompatActivity {
|
||||
if (this instanceof Topic.Subscriber) {
|
||||
((Topic.Subscriber) this).subscribeTopics();
|
||||
}
|
||||
if (getMagiskManager().isDarkTheme && getDarkTheme() > 0) {
|
||||
if (getMagiskManager().isDarkTheme && getDarkTheme() != -1) {
|
||||
setTheme(getDarkTheme());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ public class SuDatabaseHelper {
|
||||
private SuDatabaseHelper(MagiskManager mm) {
|
||||
pm = mm.getPackageManager();
|
||||
mDb = openDatabase(mm);
|
||||
mDb.disableWriteAheadLogging();
|
||||
int version = mDb.getVersion();
|
||||
if (version < DATABASE_VER) {
|
||||
onUpgrade(mDb, version);
|
||||
|
||||
@@ -64,13 +64,6 @@ public class Const {
|
||||
"com.google.android.gms"
|
||||
);
|
||||
|
||||
/* A list of apps that already uses SafetyNet
|
||||
* They DO NOT need to be added to hide list */
|
||||
public static final List<String> SN_DEFAULTLIST = Arrays.asList(
|
||||
"com.google.android.apps.walletnfcrel",
|
||||
"com.nianticlabs.pokemongo"
|
||||
);
|
||||
|
||||
public static final int USER_ID = Process.myUid() / 100000;
|
||||
|
||||
public static class ID {
|
||||
|
||||
@@ -7,8 +7,13 @@ import java.util.List;
|
||||
|
||||
public class Topic {
|
||||
|
||||
public boolean hasPublished = false;
|
||||
private static final int NON_INIT = 0;
|
||||
private static final int PENDING = 1;
|
||||
private static final int PUBLISHED = 2;
|
||||
|
||||
private int state = NON_INIT;
|
||||
private List<WeakReference<Subscriber>> subscribers;
|
||||
private Object[] results;
|
||||
|
||||
public void subscribe(Subscriber sub) {
|
||||
if (subscribers == null) {
|
||||
@@ -30,29 +35,47 @@ public class Topic {
|
||||
}
|
||||
}
|
||||
|
||||
public void reset() {
|
||||
state = NON_INIT;
|
||||
results = null;
|
||||
}
|
||||
|
||||
public boolean isPublished() {
|
||||
return state == PUBLISHED;
|
||||
}
|
||||
|
||||
public void publish() {
|
||||
publish(true, null);
|
||||
publish(true);
|
||||
}
|
||||
|
||||
public void publish(boolean record) {
|
||||
publish(record, null);
|
||||
}
|
||||
|
||||
public void publish(boolean record, Object result) {
|
||||
hasPublished = record;
|
||||
public void publish(boolean record, Object... results) {
|
||||
if (record)
|
||||
state = PUBLISHED;
|
||||
this.results = results;
|
||||
if (subscribers != null) {
|
||||
for (WeakReference<Subscriber> subscriber : subscribers) {
|
||||
if (subscriber.get() != null)
|
||||
subscriber.get().onTopicPublished(this, result);
|
||||
subscriber.get().onTopicPublished(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Object[] getResults() {
|
||||
return results;
|
||||
}
|
||||
|
||||
public boolean isPending() {
|
||||
return state == PENDING;
|
||||
}
|
||||
|
||||
public void setPending() {
|
||||
state = PENDING;
|
||||
}
|
||||
|
||||
public interface Subscriber {
|
||||
default void subscribeTopics() {
|
||||
for (Topic topic : getSubscription()) {
|
||||
if (topic.hasPublished) {
|
||||
if (topic.isPublished()) {
|
||||
onTopicPublished(topic);
|
||||
}
|
||||
topic.subscribe(this);
|
||||
@@ -63,13 +86,7 @@ public class Topic {
|
||||
event.unsubscribe(this);
|
||||
}
|
||||
}
|
||||
default void onTopicPublished() {
|
||||
onTopicPublished(null, null);
|
||||
}
|
||||
default void onTopicPublished(Topic topic) {
|
||||
onTopicPublished(topic, null);
|
||||
}
|
||||
void onTopicPublished(Topic topic, Object result);
|
||||
void onTopicPublished(Topic topic);
|
||||
Topic[] getSubscription();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,21 +49,10 @@ public class ZipUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static void signZip(InputStream is, File output) throws Exception {
|
||||
try (JarMap map = new JarMap(is, false)) {
|
||||
signZip(map, output);
|
||||
}
|
||||
}
|
||||
|
||||
public static void signZip(File input, File output) throws Exception {
|
||||
try (JarMap map = new JarMap(input, false)) {
|
||||
signZip(map, output);
|
||||
}
|
||||
}
|
||||
|
||||
public static void signZip(JarMap input, File output) throws Exception {
|
||||
try (BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(output))) {
|
||||
signZip(input, out);
|
||||
try (JarMap map = new JarMap(input, false);
|
||||
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(output))) {
|
||||
signZip(map, out);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
### v5.6.1
|
||||
- Fix database crashes on F2FS with SQLite 3.21.0+
|
||||
- Optimize several settings options
|
||||
- Use native XML for settings migration
|
||||
### v5.6.4
|
||||
- Remove the blacklisted apps using SafetyNet (e.g. Pokemon GO)
|
||||
|
||||
@@ -140,6 +140,8 @@
|
||||
<string name="language">Sprache</string>
|
||||
<string name="system_default">(Systemstandard)</string>
|
||||
<string name="settings_update">Aktualisierungs-Einstellungen</string>
|
||||
<string name="settings_check_update_title">Prüfe nach Aktualisierungen</string>
|
||||
<string name="settings_check_update_summary">Prüfe regelmäßig im Hintergrund nach Aktualisierungen</string>
|
||||
<string name="settings_update_channel_title">Aktualisierungs-Kanal</string>
|
||||
<string name="settings_update_stable">Stabil</string>
|
||||
<string name="settings_update_beta">Beta</string>
|
||||
@@ -188,6 +190,7 @@
|
||||
<string name="requester_summary">Root-Sitzungen erben den Namensraum des Abfragenden</string>
|
||||
<string name="isolate_summary">Jede Root-Sitzung hat ihren isolierten Namensraum</string>
|
||||
<string name="android_o_not_support">Android 8.0+ wird nicht unterstützt</string>
|
||||
<string name="disable_fingerprint">Keine Fingerabdrücke gespeichert oder keine Geräteunterstützung</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Superuser-Anfrage</string>
|
||||
@@ -197,7 +200,7 @@
|
||||
<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>
|
||||
<string name="once">Einmalig</string>
|
||||
<string name="tenmin">10 Min.</string>
|
||||
<string name="twentymin">20 Min.</string>
|
||||
<string name="thirtymin">30 Min.</string>
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
<!--Status Fragment-->
|
||||
<string name="magisk_version_error">Magisk no está instalado</string>
|
||||
<string name="checking_for_updates">Comprobando actualizaciones…</string>
|
||||
<string name="checking_for_updates">Comprobando Actualizaciones…</string>
|
||||
<string name="magisk_update_available">¡Disponible Magisk v%1$s!</string>
|
||||
<string name="invalid_update_channel">Canal de actualización inválido</string>
|
||||
<string name="safetyNet_check_text">Toque para empezar la comprobación de SafetyNet</string>
|
||||
<string name="safetyNet_check_text">Comprobar el estado de SafetyNet</string>
|
||||
<string name="checking_safetyNet_status">Comprobando estado de SafetyNet…</string>
|
||||
<string name="safetyNet_check_success">La comprobación de SafetyNet fue exitosa</string>
|
||||
<string name="safetyNet_check_success">La comprobación fue exitosa</string>
|
||||
<string name="safetyNet_api_error">Error en la API de SafetyNet</string>
|
||||
<string name="safetyNet_network_loss">Conexión de red perdida</string>
|
||||
<string name="safetyNet_network_loss">Red no Disponible</string>
|
||||
<string name="safetyNet_service_disconnected">Se ha detenido el servicio</string>
|
||||
<string name="safetyNet_res_invalid">La respuesta no es válida</string>
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
<string name="current_magisk_title">Versión instalada: %1$s</string>
|
||||
<string name="install_magisk_title">Última versión: %1$s</string>
|
||||
<string name="uninstall">Desinstalar</string>
|
||||
<string name="uninstall_magisk_msg">Todos los módulos serán desactivados / eliminados. El acceso Root se eliminará y, posiblemente, encriptará los datos si los datos no están cifrados actualmente.</string>
|
||||
<string name="uninstall_magisk_msg">Todos los módulos serán desactivados / eliminados. El acceso Root se eliminará y, posiblemente, cifrará los datos si los datos no están cifrados actualmente.</string>
|
||||
<string name="uninstall_magisk_title">Desinstalar Magisk</string>
|
||||
<string name="update">Actualización %1$s</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
<string name="no_info_provided">(No hay información)</string>
|
||||
<string name="no_modules_found">No se han encontrado módulos</string>
|
||||
<string name="no_modules_found">No se encontraron módulos</string>
|
||||
<string name="update_file_created">El módulo se actualizará en el siguiente reinicio</string>
|
||||
<string name="remove_file_created">El módulo se eliminará en el siguiente reinicio</string>
|
||||
<string name="remove_file_deleted">El módulo no se eliminará en el siguiente reinicio</string>
|
||||
@@ -47,10 +47,10 @@
|
||||
<string name="reboot_download">Reiniciar en Modo Download</string>
|
||||
|
||||
<!--Repo Fragment-->
|
||||
<string name="update_available">Actualización disponible</string>
|
||||
<string name="update_available">Actualización Disponible</string>
|
||||
<string name="installed">Instalado</string>
|
||||
<string name="not_installed">No Instalado</string>
|
||||
<string name="updated_on">Actualizando en: %1$s</string>
|
||||
<string name="updated_on">Actualizado el: %1$s</string>
|
||||
<string name="sorting_order">Orden de Clasificación</string>
|
||||
<string name="sort_by_name">Ordenar por nombre</string>
|
||||
<string name="sort_by_update">Ordenar según la última actualización</string>
|
||||
@@ -84,7 +84,7 @@
|
||||
<string name="download">Descargar</string>
|
||||
<string name="download_file_error">Error descargando archivo</string>
|
||||
<string name="reboot">Reiniciar</string>
|
||||
<string name="zip_process_msg">Procesando archivo zip …</string>
|
||||
<string name="zip_process_msg">Procesando archivo zip…</string>
|
||||
<string name="downloading_toast">Descargando %1$s</string>
|
||||
<string name="magisk_update_title">¡Nueva actualización de Magisk disponible!</string>
|
||||
<string name="settings_reboot_toast">Reinicia para aplicar los ajustes</string>
|
||||
@@ -94,7 +94,7 @@
|
||||
<string name="process_error">Error de proceso</string>
|
||||
<string name="internal_storage">El zip es almacenado en:\n[Internal Storage]%1$s</string>
|
||||
<string name="zip_download_title">Descargando</string>
|
||||
<string name="zip_download_msg">Descargando el archivo zip (%1$d%%) …</string>
|
||||
<string name="zip_download_msg">Descargando el archivo zip (%1$d%%)…</string>
|
||||
<string name="zip_process_title">Procesando</string>
|
||||
<string name="manager_update_title">Nueva actualización de Magisk Manager disponible!</string>
|
||||
<string name="manager_download_install">Pulse para descargar e instalar</string>
|
||||
@@ -102,8 +102,8 @@
|
||||
<string name="dtbo_patched_reboot">Magisk Manager ha parcheado dtbo.img, por favor reinicia</string>
|
||||
<string name="magisk_updates">Actualización de Magisk</string>
|
||||
<string name="flashing">Flasheando</string>
|
||||
<string name="hide_manager_toast">Ocultando Magisk Manager...</string>
|
||||
<string name="hide_manager_toast2">Esto podría tomar un tiempo...</string>
|
||||
<string name="hide_manager_toast">Ocultando Magisk Manager…</string>
|
||||
<string name="hide_manager_toast2">Esto podría tomar un tiempo…</string>
|
||||
<string name="hide_manager_fail_toast">La Ocultación de Magisk Manager ha fallado…</string>
|
||||
<string name="download_zip_only">Descargar sólo el archivo ZIP</string>
|
||||
<string name="patch_boot_file">Parcheo de la imagen boot</string>
|
||||
@@ -147,10 +147,10 @@
|
||||
<string name="settings_boot_format_title">Parchear imagen boot por tipo de formato</string>
|
||||
<string name="settings_boot_format_summary">Seleccionar el formato de salida para parchear la imagen boot.\nEscoja .img para flashear mediante fastboot/download mode; escoja .img.tar para flashear con ODIN.</string>
|
||||
|
||||
<string name="settings_core_only_summary">Habilitar sólo funciones principales, no se cargarán todos los módulos. MagiskSU, MagiskHide, y archivo hosts fuera de la partición de sistema seguirán habilitados</string>
|
||||
<string name="settings_core_only_summary">Habilitar sólo funciones principales, no se cargarán todos los módulos. MagiskSU, MagiskHide, y Systemless Hosts seguirán habilitados</string>
|
||||
<string name="settings_magiskhide_summary">Ocultar Magisk de varias detecciones</string>
|
||||
<string name="settings_hosts_title">Habilitar archivo hosts fuera de la partición de sistema</string>
|
||||
<string name="settings_hosts_summary">Soporte para aplicaciones de bloqueo de publicidad fuera de la partición de sistema</string>
|
||||
<string name="settings_hosts_title">Systemless Hosts</string>
|
||||
<string name="settings_hosts_summary">Soporte para aplicaciones Adblock fuera de la partición system</string>
|
||||
|
||||
<string name="settings_su_app_adb">Aplicaciones y ADB</string>
|
||||
<string name="settings_su_app">Sólo aplicaciones</string>
|
||||
@@ -167,8 +167,8 @@
|
||||
<string name="request_timeout_summary">%1$s segundos</string>
|
||||
<string name="settings_su_reauth_title">Re-autenticación</string>
|
||||
<string name="settings_su_reauth_summary">Pedir permisos de superusuario nuevamente si una aplicación es actualizada o reinstalada</string>
|
||||
<string name="settings_su_fingerprint_title">Habilitar la autenticación de huellas digitales</string>
|
||||
<string name="settings_su_fingerprint_summary">Utilice el escáner de huellas digitales para permitir las solicitudes de superusuario</string>
|
||||
<string name="settings_su_fingerprint_title">Autenticación por Huella Dactilar</string>
|
||||
<string name="settings_su_fingerprint_summary">Utilizar el sensor de Huella Dactilar para permitir las solicitudes de superusuario</string>
|
||||
|
||||
|
||||
<string name="multiuser_mode">Modo MultiUsuario</string>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,7 @@
|
||||
<string name="install_magisk_title">Najnovija inačica: %1$s</string>
|
||||
<string name="uninstall">Deinstaliraj</string>
|
||||
<string name="uninstall_magisk_title">Deinstaliraj Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Svi moduli će biti onemogućeni/uklonjeni. Root će biti uklonjen i potencijalno šifrirati vaše podatke, ukoliko vaši podaci trenutačno nisu šifrirani</string>
|
||||
<string name="uninstall_magisk_msg">Svi moduli će biti onemogućeni/uklonjeni. Root će biti uklonjen i potencijalno šifrirati Vaše podatke, ukoliko Vaši podaci trenutačno nisu šifrirani</string>
|
||||
<string name="update">Ažuriraj %1$s</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
@@ -54,7 +54,7 @@
|
||||
<string name="menuClearLog">Očisti zapisnik sada</string>
|
||||
<string name="logs_cleared">Zapisnik je uspješno izbrisan</string>
|
||||
<string name="log_is_empty">Zapisnik je prazan</string>
|
||||
<string name="logs_save_failed">Nije moguće napisati zapisnik na SD karticu:</string>
|
||||
<string name="logs_save_failed">Nije moguće spremiti zapisnik na SD karticu:</string>
|
||||
|
||||
<!--About Activity-->
|
||||
<string name="about">O aplikaciji</string>
|
||||
@@ -73,7 +73,7 @@
|
||||
<string name="ok">OK</string>
|
||||
<string name="close">Zatvori</string>
|
||||
<string name="repo_install_title">Instaliraj %1$s</string>
|
||||
<string name="repo_install_msg">Da li želiš instalirati %1$s sada?</string>
|
||||
<string name="repo_install_msg">Da li želite instalirati %1$s sada?</string>
|
||||
<string name="download">Preuzmi</string>
|
||||
<string name="download_file_error">Pogreška prilikom preuzimanja datoteke</string>
|
||||
<string name="reboot">Ponovno podizanje sustava</string>
|
||||
@@ -134,7 +134,7 @@
|
||||
<string name="settings_hosts_title">Systemless hostovi</string>
|
||||
<string name="settings_hosts_summary">Systemless hostovi podržavaju Adblock aplikacije</string>
|
||||
|
||||
<string name="settings_su_app_adb">Aplikacije and ADB</string>
|
||||
<string name="settings_su_app_adb">Aplikacije i ADB</string>
|
||||
<string name="settings_su_app">Samo aplikacije</string>
|
||||
<string name="settings_su_adb">Samo ADB</string>
|
||||
<string name="settings_su_disable">Onemogućeno</string>
|
||||
@@ -161,10 +161,10 @@
|
||||
|
||||
<string name="mount_namespace_mode">Postavljanje imenskog prostora</string>
|
||||
<string name="settings_ns_global">Globalni imenski prostor</string>
|
||||
<string name="settings_ns_requester">Naslijedit imenski prostor</string>
|
||||
<string name="settings_ns_requester">Naslijediti imenski prostor</string>
|
||||
<string name="settings_ns_isolate">Izolirani imenski prostor</string>
|
||||
<string name="global_summary">Sve root sesije koriste globalni imenski prostor</string>
|
||||
<string name="requester_summary">Root sesije će nasljediti imenski prostor tražitelja</string>
|
||||
<string name="requester_summary">Root sesije će naslijediti imenski prostor tražitelja</string>
|
||||
<string name="isolate_summary">Svaka root sesija ima svoj vlastiti imenski prostor</string>
|
||||
|
||||
<!--Superuser-->
|
||||
@@ -173,7 +173,7 @@
|
||||
<string name="deny">Odbij</string>
|
||||
<string name="prompt">Upitaj</string>
|
||||
<string name="grant">Odobri</string>
|
||||
<string name="su_warning">Omogućuje potpuni pristup vašem uređaju.\nOdbijte ako niste sigurni!</string>
|
||||
<string name="su_warning">Omogućuje potpuni pristup Vašem uređaju.\nOdbijte ako niste sigurni!</string>
|
||||
<string name="forever">Zauvijek</string>
|
||||
<string name="once">Jednom</string>
|
||||
<string name="tenmin">10 min</string>
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
<string name="requester_summary">Sesi root akan mewarisi ruang nama pemintanya</string>
|
||||
<string name="isolate_summary">Setiap sesi root akan memiliki ruang nama tersendiri</string>
|
||||
<string name="android_o_not_support">Tidak mendukung Android 8.0+</string>
|
||||
<string name="disable_fingerprint">Tidak ada sidik jari diatur atau tidak ada dukungan perangkat</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Permintaan Superuser</string>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<!--Welcome Activity-->
|
||||
<string name="modules">Papildiniai</string>
|
||||
<string name="downloads">Atsisiuntimai</string>
|
||||
<string name="superuser">Super Naudotojas</string>
|
||||
<string name="superuser">Supervartotojas</string>
|
||||
<string name="log">Surašymai</string>
|
||||
<string name="settings">Nustatymai</string>
|
||||
<string name="install">Instaliuoti</string>
|
||||
@@ -28,9 +28,9 @@
|
||||
<string name="keep_dm_verity">Palikti dm-verity</string>
|
||||
<string name="current_magisk_title">Instaliuota versija: %1$s</string>
|
||||
<string name="install_magisk_title">Naujausia versija: %1$s</string>
|
||||
<string name="uninstall">Ištrinti</string>
|
||||
<string name="uninstall_magisk_title">Ištrinti Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Visi papildiniai bus išjungti/panaikinti. Root bus panaikintas. Jei duomenys nėra užšifruoti, yra galimybė, kad jie taps užšifruotais..</string>
|
||||
<string name="uninstall">Pašalinti</string>
|
||||
<string name="uninstall_magisk_title">Pašalinti Magisk</string>
|
||||
<string name="uninstall_magisk_msg">Visi papildiniai bus išjungti/pašalinti. Root bus panaikintas. Jei duomenys nėra užšifruoti, yra galimybė, kad jie taps užšifruotais..</string>
|
||||
<string name="update">Atnaujinti %1$s</string>
|
||||
|
||||
<!--Module Fragment-->
|
||||
@@ -59,8 +59,8 @@
|
||||
<string name="menuSaveLog">Išsaugoti surašymus</string>
|
||||
<string name="menuReload">Iš naujo</string>
|
||||
<string name="menuClearLog">Išvalyti surašymus</string>
|
||||
<string name="logs_cleared">Surašymas sėkmingai užrašytas</string>
|
||||
<string name="log_is_empty">Surašymas yra tuščias</string>
|
||||
<string name="logs_cleared">Surašymai pašalinti</string>
|
||||
<string name="log_is_empty">Surašymų nėra</string>
|
||||
<string name="logs_save_failed">Nesugebėjome įrašyti surašymų į SD kortelę:</string>
|
||||
|
||||
<!--About Activity-->
|
||||
@@ -68,6 +68,7 @@
|
||||
<string name="app_changelog">Pakeitimų sąrašas</string>
|
||||
<string name="translators">Vv2233Bb</string>
|
||||
<string name="app_version">Versija</string>
|
||||
|
||||
<string name="app_source_code">Prisidėkite</string>
|
||||
<string name="donation">Paaukoti</string>
|
||||
<string name="app_translators">Vertėjai</string>
|
||||
@@ -85,9 +86,9 @@
|
||||
<string name="download_file_error">Atsisiunčiant failą įvyko klaida</string>
|
||||
<string name="reboot">Perkrauti</string>
|
||||
<string name="downloading_toast">Atsisiunčiamas %1$s</string>
|
||||
<string name="magisk_update_title">Naujas Magisk atnaujinimas egzistuoja!</string>
|
||||
<string name="magisk_update_title">Atsirado nauja Magisk versija!</string>
|
||||
<string name="settings_reboot_toast">Nustatymų įgalinimui prašome perkrauti telefoną</string>
|
||||
<string name="release_notes">Šios versijos pakeitimai</string>
|
||||
<string name="release_notes">Pakeitimai</string>
|
||||
<string name="repo_cache_cleared">Repo failai išvalyti</string>
|
||||
<string name="safetyNet_hide_notice">Ši programėlė naudoja SafetyNet\nMagiskHide tai automatiškai sutvarko</string>
|
||||
<string name="process_error">Proceso klaida</string>
|
||||
@@ -114,7 +115,7 @@
|
||||
<string name="boot_file_patch_msg">Pasirinkti boot failą .img ar .img.tar formate.</string>
|
||||
<string name="complete_uninstall">Pilnas pašalinimas</string>
|
||||
<string name="restore_img">Atstatyti boot failą.</string>
|
||||
<string name="uninstall_app">Ištrinti programėlę</string>
|
||||
<string name="uninstall_app">Pašalinti programėlę</string>
|
||||
<string name="restore_done">Atstatymas įvykdytas!</string>
|
||||
<string name="restore_fail">Gamyklinis atstatymo failas neegzistuoja!</string>
|
||||
<string name="uninstall_toast">Magisk Manager bus pašalintas po 5 sekundžių, pašalinus perkraukite telefoną.</string>
|
||||
@@ -129,24 +130,28 @@
|
||||
<string name="settings_notification_title">Pranešimai atsiradus atnaujinimui</string>
|
||||
<string name="settings_notification_summary">Parodyti pranešmus atsiradus naujai versijai</string>
|
||||
<string name="settings_clear_cache_title">Išvalyti nereikalingus saugyklos failus</string>
|
||||
<string name="settings_clear_cache_summary">Išvalyti patalpintą informaciją talpykloms internete, priverčia perkrauti inerneto jungtį</string>
|
||||
<string name="settings_clear_cache_summary">Išvalyti patalpintą informaciją talpykloms internete, priverčia perkrauti interneto jungtį</string>
|
||||
<string name="settings_hide_manager_title">Paslėpti Magisk Manager</string>
|
||||
<string name="settings_hide_manager_summary">Perpakuoti Magisk Manager su atsitiktiniu pakuotės pavadinimu</string>
|
||||
<string name="settings_restore_manager_title">Grąžinti Magisk Manager</string>
|
||||
<string name="settings_restore_manager_summary">Grąžinti Magisk Manager su orginalia pakuote</string>
|
||||
<string name="language">Kalba</string>
|
||||
<string name="system_default">(Sistemos)</string>
|
||||
<string name="settings_update">Atnaujinimų nustatymai</string>
|
||||
<string name="settings_check_update_title">Automatiškas atnaujinimų ieškojimas</string>
|
||||
<string name="settings_check_update_summary">Automatiškai ieškoti Magisk ir Magisk Manager atnaujinimų.</string>
|
||||
<string name="settings_update_channel_title">Atnaujinimų tipai</string>
|
||||
<string name="settings_update_stable">Stabilūs</string>
|
||||
<string name="settings_update_beta">Beta</string>
|
||||
<string name="settings_update_custom">Pasirinktiniai</string>
|
||||
<string name="settings_update_custom_msg">Įvesti pasirinktinį URL</string>
|
||||
<string name="settings_boot_format_title">Boot failo formatas</string>
|
||||
<string name="settings_boot_format_summary">Pasirinkite boot failo formatą.\nPasirinkite .img įdiegimui per fastboot/download; Pasirinkite .img.tar įdiegimui per ODIN.</string>
|
||||
<string name="settings_core_only_title">Magisk Pagrindinis režimas</string>
|
||||
<string name="settings_core_only_summary">Įgalintos bus tik pagrindines funkcijos, visi papildiniai bus išjungti. MagiskSU, Magisk Hide ir Sistemos pedejėjai liks įgalinti</string>
|
||||
<string name="settings_boot_format_summary">Pasirinkti boot failo formatą.\n.img naudojamas įdiegimui per fastboot/download; .img.tar naudojamas įdiegimui per ODIN.</string>
|
||||
<string name="settings_core_only_title">Pagrindinis Magisk režimas</string>
|
||||
<string name="settings_core_only_summary">Įgalinti tik pagrindines funkcijos, išjungti visus papildinius. MagiskSU, Magisk Hide ir Sistemos pedejėjai liks įgalinti</string>
|
||||
<string name="settings_magiskhide_summary">Paslėpti Magisk nuo įvairių susekimų</string>
|
||||
<string name="settings_hosts_title">Sistemos padejėjai</string>
|
||||
<string name="settings_hosts_summary">Sistemų padejėjų įgalinimas Adblock programėlėms</string>
|
||||
<string name="settings_hosts_summary">Įgalinti sistemos padejėjus Adblock programėlėms</string>
|
||||
|
||||
<string name="settings_su_app_adb">Programėlėms ir ADB</string>
|
||||
<string name="settings_su_app">Tik programėlėms</string>
|
||||
@@ -158,7 +163,7 @@
|
||||
<string name="settings_su_request_60">60 sekundžių</string>
|
||||
<string name="superuser_access">Supervartotojo prieiga</string>
|
||||
<string name="auto_response">Automatinis atsakymas</string>
|
||||
<string name="request_timeout">Prašymo laikas baigėsi</string>
|
||||
<string name="request_timeout">Prašymo laikas baigiasi po</string>
|
||||
<string name="superuser_notification">Supervartotojo pranešimai</string>
|
||||
<string name="request_timeout_summary">%1$s sekundžių</string>
|
||||
<string name="settings_su_reauth_title">Pakartotinai patvirtinti po atnaujinimo</string>
|
||||
@@ -183,7 +188,8 @@
|
||||
<string name="requester_summary">Root sesijos paveldi jos išprašytojo/s vardų sritį</string>
|
||||
<string name="isolate_summary">Kiekviena root sesija turi savo izoliuotą vardų sritį</string>
|
||||
<string name="android_o_not_support">Negalima įrenginiams naudojantiems Android 8.0+</string>
|
||||
|
||||
<string name="disable_fingerprint">Jūsų įrenginyje nebuvo surasta pirštų antspaudų arba jūsų įrenginys neturi pirštų antspaudų skaitytuvo</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Supervartotojo prašymas</string>
|
||||
<string name="deny_with_str">Atmesti%1$s</string>
|
||||
@@ -200,15 +206,15 @@
|
||||
<string name="su_allow_toast">%1$s gavo Supervartotojo teises</string>
|
||||
<string name="su_deny_toast">%1$s negavo Supervartotojo teisių</string>
|
||||
<string name="no_apps_found">Nėra surastų programėlių</string>
|
||||
<string name="su_snack_grant">Supervartotojo teisių buvo %1$s suteikta</string>
|
||||
<string name="su_snack_deny">Supervartotojo teisių buvo %1$s atmesta</string>
|
||||
<string name="su_snack_notif_on">Buvo įjungta %1$s pranešimų</string>
|
||||
<string name="su_snack_notif_off">Buvo išjungta %1$s pranešimų</string>
|
||||
<string name="su_snack_log_on">%1$s surašymų buvo įjungta</string>
|
||||
<string name="su_snack_log_off">%1$s surašymų buvo išjungta</string>
|
||||
<string name="su_snack_grant">%1$s supervartotojo teisių prašymas buvo atsakytas teigiamai</string>
|
||||
<string name="su_snack_deny">%1$s supervartotojo teisių prašymas buvo atmestas</string>
|
||||
<string name="su_snack_notif_on">Buvo įjungta %1$s pranešimai</string>
|
||||
<string name="su_snack_notif_off">Buvo išjungta %1$s pranešimai</string>
|
||||
<string name="su_snack_log_on">%1$s veiksmų surašymas yra įgalintas</string>
|
||||
<string name="su_snack_log_off">%1$s veiksmų surašymas yra išjungtas</string>
|
||||
<string name="su_snack_revoke">%1$s teisių atšaukta</string>
|
||||
<string name="su_revoke_title">Atšaukti?</string>
|
||||
<string name="su_revoke_msg">Atšaukti %1$s teisių?</string>
|
||||
<string name="su_revoke_title">Neleisti?</string>
|
||||
<string name="su_revoke_msg">Neleisti %1$s naudotis supervartotojo teisėmis?</string>
|
||||
<string name="toast">Išmesti</string>
|
||||
<string name="none">Nėra</string>
|
||||
<string name="auth_fail">Patvirtinimas žlugo</string>
|
||||
|
||||
@@ -50,6 +50,10 @@
|
||||
<string name="update_available">Update beschikbaar</string>
|
||||
<string name="installed">Geïnstalleerd</string>
|
||||
<string name="not_installed">Niet geïnstalleerd</string>
|
||||
<string name="updated_on">Bijgewerkt op: %1$s</string>
|
||||
<string name="sorting_order">Sorteervolgorde</string>
|
||||
<string name="sort_by_name">Sorteren op naam</string>
|
||||
<string name="sort_by_update">Sorteren op laatste update</string>
|
||||
|
||||
<!--Log Fragment-->
|
||||
<string name="menuSaveLog">Opslaan log</string>
|
||||
@@ -128,9 +132,13 @@
|
||||
<string name="settings_clear_cache_summary">Wis de gecachte informatie voor online opslagplaatsen. Dit dwingt de app om online te verversen</string>
|
||||
<string name="settings_hide_manager_title">Magisk Manager verbergen</string>
|
||||
<string name="settings_hide_manager_summary">Magisk Manager opnieuw inpakken met een willekeurige pakketnaam</string>
|
||||
<string name="settings_restore_manager_title">Magisk Manager herstellen</string>
|
||||
<string name="settings_restore_manager_summary">Magisk Manager met oorspronkelijk pakket herstellen</string>
|
||||
<string name="language">Taal</string>
|
||||
<string name="system_default">(Systeem standaard)</string>
|
||||
<string name="settings_update">Instellingen bijwerken</string>
|
||||
<string name="settings_check_update_title">Updates controleren</string>
|
||||
<string name="settings_check_update_summary">Periodiek op updates controleren in de achtergrond</string>
|
||||
<string name="settings_update_channel_title">Update-kanaal</string>
|
||||
<string name="settings_update_stable">Stabiel</string>
|
||||
<string name="settings_update_beta">Beta</string>
|
||||
@@ -159,6 +167,8 @@
|
||||
<string name="request_timeout_summary">%1$s seconden</string>
|
||||
<string name="settings_su_reauth_title">Opnieuw verzoeken na bijwerken</string>
|
||||
<string name="settings_su_reauth_summary">Superuser rechten opnieuw opvragen na bijwerken applicatie</string>
|
||||
<string name="settings_su_fingerprint_title">Vingerafdruk authenticatie inschakelen</string>
|
||||
<string name="settings_su_fingerprint_summary">Vingerafdruk gebruiken om superuser verzoeken toe te staan</string>
|
||||
|
||||
<string name="multiuser_mode">Multi-gebruiker modus</string>
|
||||
<string name="settings_owner_only">Alleen apparaateigenaar</string>
|
||||
@@ -177,6 +187,7 @@
|
||||
<string name="requester_summary">Rootsessies verkrijgen de verzoeker\'s naamruimte</string>
|
||||
<string name="isolate_summary">Iedere rootsessie heeft een eigen geïsoleerde naamruimte</string>
|
||||
<string name="android_o_not_support">Ondersteunt geen Android 8.0+</string>
|
||||
<string name="disable_fingerprint">Geen vingerafdrukken ingesteld, of geen apparaatondersteuning</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Superuser verzoek</string>
|
||||
@@ -205,6 +216,7 @@
|
||||
<string name="su_revoke_msg">De rechten van %1$s intrekken?</string>
|
||||
<string name="toast">Toast</string>
|
||||
<string name="none">Geen</string>
|
||||
<string name="auth_fail">Authenticatie mislukt</string>
|
||||
|
||||
<!--Superuser logs-->
|
||||
<string name="pid">PID:\u0020</string>
|
||||
|
||||
@@ -140,7 +140,9 @@
|
||||
<string name="language">Język</string>
|
||||
<string name="system_default">(Domyślny Systemu)</string>
|
||||
<string name="settings_update">Aktualizacja Ustawień</string>
|
||||
<string name="settings_update_channel_title">Kanał Aktualizacji</string>
|
||||
<string name="settings_check_update_title">Sprawdź Aktualizację</string>
|
||||
<string name="settings_check_update_summary">Regularnie sprawdzaj aktualizacje w tle</string>
|
||||
<string name="settings_update_channel_title">Kanał Aktualizacji</string>
|
||||
<string name="settings_update_stable">Stabilny</string>
|
||||
<string name="settings_update_beta">Beta</string>
|
||||
<string name="settings_update_custom">Własny</string>
|
||||
@@ -188,7 +190,8 @@
|
||||
<string name="requester_summary">Sesje Root będzie dziedziczyć prośby i nazwy</string>
|
||||
<string name="isolate_summary">W każdej sesji root będzie miał własną odosobnioną nazwę</string>
|
||||
<string name="android_o_not_support">Brak wsparcia dla Androida 8.0+</string>
|
||||
|
||||
<string name="disable_fingerprint">Nie ustawiono żadnych odcisków palców lub brak obsługi urządzenia</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Prośba o dostęp Superusera</string>
|
||||
<string name="deny_with_str">Odmów%1$s</string>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -129,6 +129,8 @@
|
||||
<string name="language">Limbă</string>
|
||||
<string name="system_default">(Implicit)</string>
|
||||
<string name="settings_update">Setări actualizare</string>
|
||||
<string name="settings_check_update_title">Verificare actualizări</string>
|
||||
<string name="settings_check_update_summary">Se verifică periodic în fundal dacă există actualizări</string>
|
||||
<string name="settings_update_channel_title">Canal de actualizare</string>
|
||||
<string name="settings_update_stable">Stabil</string>
|
||||
<string name="settings_update_beta">Beta</string>
|
||||
@@ -177,6 +179,7 @@
|
||||
<string name="requester_summary">Sesiunile de root vor moșteni spațiul de nume al solicitantului</string>
|
||||
<string name="isolate_summary">Fiecare sesiune de root va avea propriul spațiu de nume izolat</string>
|
||||
<string name="android_o_not_support">Nu se acceptă pe Android 8.0+</string>
|
||||
<string name="disable_fingerprint">Nu au fost setate amprente sau scanerul de apmrentă lipseşte</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Solicitare Superuser</string>
|
||||
|
||||
@@ -137,14 +137,14 @@
|
||||
<string name="system_default">(Sistem Varsayılanı)</string>
|
||||
<string name="settings_update">Güncelleme Ayarları</string>
|
||||
<string name="settings_check_update_title">Güncellemeleri denetle</string>
|
||||
<string name="settings_check_update_summary">Arka planda düzenli olarak güncellemeleri denetle</string>
|
||||
<string name="settings_check_update_summary">Düzenli aralıklarla arka planda güncellemeleri denetle</string>
|
||||
<string name="settings_update_channel_title">Güncelleme Kanalı</string>
|
||||
<string name="settings_update_stable">Kararlı</string>
|
||||
<string name="settings_update_beta">Beta</string>
|
||||
<string name="settings_update_custom">Özel</string>
|
||||
<string name="settings_update_custom_msg">Özel bir URL ekleyin</string>
|
||||
<string name="settings_boot_format_title">Yamalı Önyükleme Formatı</string>
|
||||
<string name="settings_boot_format_summary">Yamalı önyükleme imaj dosyasının formatını seçin\nFastboot/indirme modunda yüklemek için .img seçeneğini seçin; ODIN ile yüklemek için .img.tar\'ı seçin.</string>
|
||||
<string name="settings_boot_format_summary">Yamalı önyükleme imaj dosyasının formatını seçin\nFastboot/download modunda yüklemek için .img seçeneğini seçin; ODIN ile yüklemek için .img.tar\'ı seçin.</string>
|
||||
<string name="settings_core_only_title">Magisk Sadece Çekirdek Modu</string>
|
||||
<string name="settings_core_only_summary">Sadece temel özellikleri etkinleştirin, tüm modüller yüklenmez. MagiskSU, MagiskHide ve host yine de etkinleştirilecektir</string>
|
||||
<string name="settings_magiskhide_summary">"Magisk\'i çeşitli algılamalardan gizle"</string>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<string name="not_installed">Не встановлено</string>
|
||||
<string name="updated_on">Оновлено: %1$s</string>
|
||||
<string name="sorting_order">Порядок сортування</string>
|
||||
<string name="sort_by_name">Сортувати за ім'ям</string>
|
||||
<string name="sort_by_name">Сортувати за назвою</string>
|
||||
<string name="sort_by_update">Сортувати за оновленням</string>
|
||||
|
||||
<!--Log Fragment-->
|
||||
@@ -131,9 +131,13 @@
|
||||
<string name="settings_clear_cache_summary">Очистити збережену інформацію про мережеві репозиторії, змушуючи програму примусово оновлюватися через Інтернет</string>
|
||||
<string name="settings_hide_manager_title">Приховати Magisk Manager</string>
|
||||
<string name="settings_hide_manager_summary">Перезібрати Magisk Manager з випадковим іменем пакету</string>
|
||||
<string name="settings_restore_manager_title">Відновити Magisk Manager</string>
|
||||
<string name="settings_restore_manager_summary">Відновити Magisk Manager з оригінального пакету</string>
|
||||
<string name="language">Мова</string>
|
||||
<string name="system_default">Стандартна (системна)</string>
|
||||
<string name="settings_update">Оновити налаштування</string>
|
||||
<string name="settings_check_update_title">Перевіряти оновлення</string>
|
||||
<string name="settings_check_update_summary">Періодично перевіряти оновлення у фоновому режимі</string>
|
||||
<string name="settings_update_channel_title">Канал оновлення</string>
|
||||
<string name="settings_update_stable">Стабільний реліз</string>
|
||||
<string name="settings_update_beta">Бета реліз</string>
|
||||
@@ -182,6 +186,7 @@
|
||||
<string name="requester_summary">Сеанси Суперкористувача наслідують простір імен запитувача</string>
|
||||
<string name="isolate_summary">Кожнен сеанс Суперкористувача має власний ізольований простір імен</string>
|
||||
<string name="android_o_not_support">Не підтримує Android 8.0+</string>
|
||||
<string name="disable_fingerprint">Немає відбитків пальців або пристрій не підтримується</string>
|
||||
|
||||
<!--Superuser-->
|
||||
<string name="su_request_title">Запит прав Суперкористувача</string>
|
||||
|
||||
Reference in New Issue
Block a user