Remove set permission bullshit

This commit is contained in:
NekoInverter 2020-12-11 00:11:42 +08:00
parent abc3598881
commit 672f06a6b2
No known key found for this signature in database
GPG Key ID: 280D6CCCF95715F9
17 changed files with 20 additions and 111 deletions

View File

@ -1,19 +0,0 @@
package android.os;
@SuppressWarnings("unused")
public class FileUtils {
public static final int S_IRWXU = 448;
public static final int S_IRUSR = 256;
public static final int S_IWUSR = 128;
public static final int S_IXUSR = 64;
public static final int S_IRWXG = 56;
public static final int S_IRGRP = 32;
public static final int S_IWGRP = 16;
public static final int S_IXGRP = 8;
public static final int S_IRWXO = 7;
public static final int S_IROTH = 4;
public static final int S_IWOTH = 2;
public static final int S_IXOTH = 1;
public static native int setPermissions(String paramString, int paramInt1, int paramInt2, int paramInt3);
}

View File

@ -7,7 +7,6 @@ import android.app.PendingIntent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
@ -21,7 +20,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.receivers.PackageChangeReceiver;
import org.meowcat.edxposed.manager.ui.activity.CrashReportActivity;
import org.meowcat.edxposed.manager.util.FileUtils;
import org.meowcat.edxposed.manager.util.ModuleUtil;
import org.meowcat.edxposed.manager.util.NotificationUtil;
import org.meowcat.edxposed.manager.util.RepoLoader;
@ -61,11 +59,10 @@ public class App extends Application implements Application.ActivityLifecycleCal
return instance.pref;
}
public static void mkdirAndChmod(String dir, int permissions) {
public static void mkdir(String dir) {
dir = Constants.getBaseDir() + dir;
//noinspection ResultOfMethodCallIgnored
new File(dir).mkdir();
FileUtils.setPermissions(dir, permissions);
}
public static boolean supportScope() {
@ -142,12 +139,10 @@ public class App extends Application implements Application.ActivityLifecycleCal
new Intent(this, PackageChangeReceiver.class), 0);
}
@SuppressWarnings({"OctalInteger"})
@SuppressLint({"PrivateApi", "NewApi"})
private void createDirectories() {
FileUtils.setPermissions(Constants.getBaseDir(), 00777);
mkdirAndChmod("conf", 00777);
mkdirAndChmod("log", 00777);
mkdir("conf");
mkdir("log");
}
public void updateProgressIndicator(final SwipeRefreshLayout refreshLayout) {

View File

@ -20,7 +20,6 @@ import org.meowcat.edxposed.manager.BuildConfig;
import org.meowcat.edxposed.manager.Constants;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.util.CompileUtil;
import org.meowcat.edxposed.manager.util.FileUtils;
import java.io.BufferedReader;
import java.io.File;
@ -38,7 +37,6 @@ import java.util.Objects;
import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
@SuppressWarnings("deprecation")
public class AppHelper {
private static final String BASE_PATH = Constants.getBaseDir();
@ -54,11 +52,10 @@ public class AppHelper {
private static final HashMap<String, List<String>> scopeList = new HashMap<>();
@SuppressWarnings("OctalInteger")
static void makeSurePath() {
App.mkdirAndChmod(WHITE_LIST_PATH, 00777);
App.mkdirAndChmod(BLACK_LIST_PATH, 00777);
App.mkdirAndChmod(COMPAT_LIST_PATH, 00777);
App.mkdir(WHITE_LIST_PATH);
App.mkdir(BLACK_LIST_PATH);
App.mkdir(COMPAT_LIST_PATH);
}
public static boolean isWhiteListMode() {
@ -141,7 +138,6 @@ public class AppHelper {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file.getPath());
setFilePermissionsFromMode(file.getPath(), Context.MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
@ -167,20 +163,6 @@ public class AppHelper {
return returns;
}
@SuppressWarnings("SameParameterValue")
@SuppressLint({"WorldReadableFiles", "WorldWriteableFiles"})
private static void setFilePermissionsFromMode(String name, int mode) {
int perms = FileUtils.S_IRUSR | FileUtils.S_IWUSR
| FileUtils.S_IRGRP | FileUtils.S_IWGRP;
if ((mode & Context.MODE_WORLD_READABLE) != 0) {
perms |= FileUtils.S_IROTH;
}
if ((mode & Context.MODE_WORLD_WRITEABLE) != 0) {
perms |= FileUtils.S_IWOTH;
}
FileUtils.setPermissions(name, perms);
}
@SuppressLint("WorldReadableFiles")
private static Boolean blackListFileName(String packageName, boolean isAdd) {
boolean returns = true;
@ -190,7 +172,6 @@ public class AppHelper {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file.getPath());
setFilePermissionsFromMode(file.getPath(), Context.MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
@ -225,7 +206,6 @@ public class AppHelper {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file.getPath());
setFilePermissionsFromMode(file.getPath(), Context.MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
@ -366,7 +346,6 @@ public class AppHelper {
return false;
}
scopeList.put(modulePackageName, list);
setFilePermissionsFromMode(file.getPath(), Context.MODE_WORLD_READABLE);
return true;
}
}

View File

@ -6,8 +6,8 @@ import android.content.pm.ApplicationInfo;
import android.widget.CompoundButton;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.util.ToastUtil;
import org.meowcat.edxposed.manager.ui.widget.MasterSwitch;
import org.meowcat.edxposed.manager.util.ToastUtil;
import java.util.ArrayList;
import java.util.List;

View File

@ -19,13 +19,13 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsFragment;
import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsSettingsFragment;
import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsVersionsFragment;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.ActivityDownloadDetailsBinding;
import org.meowcat.edxposed.manager.databinding.ActivityDownloadDetailsNotFoundBinding;
import org.meowcat.edxposed.manager.repo.Module;
import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsFragment;
import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsSettingsFragment;
import org.meowcat.edxposed.manager.ui.fragment.DownloadDetailsVersionsFragment;
import org.meowcat.edxposed.manager.util.ModuleUtil;
import org.meowcat.edxposed.manager.util.RepoLoader;

View File

@ -19,12 +19,12 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.gson.Gson;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.ui.fragment.BaseAdvancedInstaller;
import org.meowcat.edxposed.manager.BuildConfig;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.ui.fragment.StatusInstallerFragment;
import org.meowcat.edxposed.manager.databinding.ActivityEdDownloadBinding;
import org.meowcat.edxposed.manager.databinding.DialogInstallWarningBinding;
import org.meowcat.edxposed.manager.ui.fragment.BaseAdvancedInstaller;
import org.meowcat.edxposed.manager.ui.fragment.StatusInstallerFragment;
import org.meowcat.edxposed.manager.util.json.JSONUtils;
import org.meowcat.edxposed.manager.util.json.XposedTab;

View File

@ -10,7 +10,6 @@ import androidx.core.content.ContextCompat;
import com.bumptech.glide.Glide;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.Constants;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppHelper;

View File

@ -18,7 +18,6 @@ import org.meowcat.edxposed.manager.adapters.AppAdapter;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.adapters.ScopeAdapter;
import org.meowcat.edxposed.manager.databinding.ActivityScopeListBinding;
import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.util.LinearLayoutManagerFix;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;

View File

@ -24,21 +24,16 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.takisoft.preferencex.PreferenceFragmentCompat;
import com.topjohnwu.superuser.Shell;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.Constants;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.adapters.AppHelper;
import org.meowcat.edxposed.manager.adapters.BlackListAdapter;
import org.meowcat.edxposed.manager.databinding.ActivitySettingsBinding;
import org.meowcat.edxposed.manager.util.FileUtils;
import org.meowcat.edxposed.manager.util.RepoLoader;
import org.meowcat.edxposed.manager.ui.widget.IntegerListPreference;
import org.meowcat.edxposed.manager.util.RepoLoader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Objects;
public class SettingsActivity extends BaseActivity {
private static final String KEY_PREFIX = SettingsActivity.class.getName() + '.';
@ -113,7 +108,7 @@ public class SettingsActivity extends BaseActivity {
return restarting || super.dispatchGenericMotionEvent(event);
}
@SuppressWarnings({"ResultOfMethodCallIgnored", "deprecation"})
@SuppressWarnings({"ResultOfMethodCallIgnored"})
public static class SettingsFragment extends PreferenceFragmentCompat {
private static final File disableResourcesFlag = new File(Constants.getBaseDir() + "conf/disable_resources");
private static final File dynamicModulesFlag = new File(Constants.getBaseDir() + "conf/dynamicmodules");
@ -125,19 +120,6 @@ public class SettingsActivity extends BaseActivity {
private static final File verboseLogProcessID = new File(Constants.getBaseDir() + "log/all.pid");
private static final File modulesLogProcessID = new File(Constants.getBaseDir() + "log/error.pid");
@SuppressLint({"WorldReadableFiles", "WorldWriteableFiles"})
static void setFilePermissionsFromMode(String name) {
int perms = FileUtils.S_IRUSR | FileUtils.S_IWUSR
| FileUtils.S_IRGRP | FileUtils.S_IWGRP;
if ((MODE_WORLD_READABLE) != 0) {
perms |= FileUtils.S_IROTH;
}
if ((Context.MODE_WORLD_READABLE & MODE_WORLD_WRITEABLE) != 0) {
perms |= FileUtils.S_IWOTH;
}
FileUtils.setPermissions(name, perms);
}
@SuppressLint({"ObsoleteSdkInt", "WorldReadableFiles"})
@Override
public void onCreatePreferencesFix(Bundle savedInstanceState, String rootKey) {
@ -175,7 +157,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(whiteListModeFlag.getPath());
setFilePermissionsFromMode(whiteListModeFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {
@ -208,7 +189,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(disableVerboseLogsFlag.getPath());
setFilePermissionsFromMode(disableVerboseLogsFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {
@ -241,7 +221,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(disableModulesLogsFlag.getPath());
setFilePermissionsFromMode(disableModulesLogsFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {
@ -274,7 +253,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(blackWhiteListModeFlag.getPath());
setFilePermissionsFromMode(blackWhiteListModeFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {
@ -307,7 +285,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(deoptBootFlag.getPath());
setFilePermissionsFromMode(deoptBootFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {
@ -340,7 +317,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(dynamicModulesFlag.getPath());
setFilePermissionsFromMode(dynamicModulesFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {
@ -373,7 +349,6 @@ public class SettingsActivity extends BaseActivity {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(disableResourcesFlag.getPath());
setFilePermissionsFromMode(disableResourcesFlag.getPath());
} catch (FileNotFoundException e) {
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
} finally {

View File

@ -26,10 +26,10 @@ import org.meowcat.edxposed.manager.repo.ReleaseType;
import org.meowcat.edxposed.manager.repo.RepoParser;
import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.ui.activity.DownloadDetailsActivity;
import org.meowcat.edxposed.manager.ui.widget.DownloadView;
import org.meowcat.edxposed.manager.util.ModuleUtil.InstalledModule;
import org.meowcat.edxposed.manager.util.RepoLoader;
import org.meowcat.edxposed.manager.util.chrome.LinkTransformationMethod;
import org.meowcat.edxposed.manager.ui.widget.DownloadView;
import java.text.DateFormat;
import java.util.Date;

View File

@ -8,9 +8,9 @@ import android.widget.LinearLayout;
import androidx.fragment.app.Fragment;
import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.databinding.DownloadViewBinding;
import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.util.NavUtil;
public class DownloadView extends LinearLayout {

View File

@ -5,8 +5,8 @@ import android.content.pm.ApplicationInfo;
import androidx.fragment.app.FragmentManager;
import org.meowcat.edxposed.manager.ui.fragment.CompileDialogFragment;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.ui.fragment.CompileDialogFragment;
public class CompileUtil {

View File

@ -1,15 +0,0 @@
package org.meowcat.edxposed.manager.util;
public class FileUtils {
public static final int S_IRUSR = 256;
public static final int S_IWUSR = 128;
public static final int S_IRGRP = 32;
public static final int S_IWGRP = 16;
public static final int S_IROTH = 4;
public static final int S_IWOTH = 2;
public static void setPermissions(String dir, int permissions) {
android.os.FileUtils.setPermissions(dir, permissions, -1, -1);
}
}

View File

@ -29,7 +29,6 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
@SuppressWarnings("OctalInteger")
public final class ModuleUtil {
private static final String PLAY_STORE_PACKAGE = "com.android.vending";
// xposedminversion below this
@ -248,9 +247,6 @@ public final class ModuleUtil {
modulesList.close();
enabledModulesList.close();
FileUtils.setPermissions(Constants.getEnabledModulesListFile(), 00664);
FileUtils.setPermissions(Constants.getEnabledModulesListFile(), 00664);
if (showToast) {
if (binding != null) {
Snackbar.make(binding.snackbar, R.string.xposed_module_list_updated, Snackbar.LENGTH_SHORT).show();

View File

@ -14,8 +14,8 @@ import androidx.browser.customtabs.CustomTabsIntent;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.ui.activity.BaseActivity;
public final class NavUtil {

View File

@ -18,8 +18,8 @@ import androidx.core.content.ContextCompat;
import com.topjohnwu.superuser.Shell;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.ui.activity.MainActivity;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.ui.activity.MainActivity;
public final class NotificationUtil {

View File

@ -17,7 +17,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.meowcat.edxposed.manager.App;
import org.meowcat.edxposed.manager.ui.activity.DownloadActivity;
import org.meowcat.edxposed.manager.R;
import org.meowcat.edxposed.manager.repo.Module;
import org.meowcat.edxposed.manager.repo.ModuleVersion;
@ -26,6 +25,7 @@ import org.meowcat.edxposed.manager.repo.RepoDb;
import org.meowcat.edxposed.manager.repo.RepoParser;
import org.meowcat.edxposed.manager.repo.RepoParser.RepoParserCallback;
import org.meowcat.edxposed.manager.repo.Repository;
import org.meowcat.edxposed.manager.ui.activity.DownloadActivity;
import org.meowcat.edxposed.manager.util.DownloadsUtil.SyncDownloadInfo;
import java.io.File;