diff --git a/F-Droid/res/values/strings.xml b/F-Droid/res/values/strings.xml
index 3c181aa36..8c262df2a 100644
--- a/F-Droid/res/values/strings.xml
+++ b/F-Droid/res/values/strings.xml
@@ -28,7 +28,7 @@
Enable privileged F-Droid
Use privileged permissions to install, update, and remove packages
Uninstall privileged F-Droid
- Uninstall F-Droid when installed as a privileged app
+ Uninstalls the additional privileged F-Droid app
Name of your Local Repo
The advertised title of your local repo: %s
Use Private Connection
diff --git a/F-Droid/res/xml/preferences.xml b/F-Droid/res/xml/preferences.xml
index 708ed5150..e038d5963 100644
--- a/F-Droid/res/xml/preferences.xml
+++ b/F-Droid/res/xml/preferences.xml
@@ -75,11 +75,11 @@
android:key="expert" />
diff --git a/F-Droid/src/org/fdroid/fdroid/Preferences.java b/F-Droid/src/org/fdroid/fdroid/Preferences.java
index 1dd04f0a3..2b004d13c 100644
--- a/F-Droid/src/org/fdroid/fdroid/Preferences.java
+++ b/F-Droid/src/org/fdroid/fdroid/Preferences.java
@@ -49,8 +49,8 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
public static final String PREF_CACHE_APK = "cacheDownloaded";
public static final String PREF_EXPERT = "expert";
public static final String PREF_UPD_LAST = "lastUpdateCheck";
- public static final String PREF_SYSTEM_INSTALLER = "systemInstaller";
- public static final String PREF_UNINSTALL_SYSTEM_APP = "uninstallSystemApp";
+ public static final String PREF_PRIVILEGED_INSTALLER = "privilegedInstaller";
+ public static final String PREF_UNINSTALL_PRIVILEGED_APP = "uninstallPrivilegedApp";
public static final String PREF_LOCAL_REPO_NAME = "localRepoName";
public static final String PREF_LOCAL_REPO_HTTPS = "localRepoHttps";
public static final String PREF_LANGUAGE = "language";
@@ -59,12 +59,12 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
public static final String PREF_PROXY_PORT = "proxyPort";
public static final String PREF_SHOW_NFC_DURING_SWAP = "showNfcDuringSwap";
public static final String PREF_FIRST_TIME = "firstTime";
- public static final String PREF_POST_SYSTEM_INSTALL = "postSystemInstall";
+ public static final String PREF_POST_PRIVILEGED_INSTALL = "postPrivilegedInstall";
private static final boolean DEFAULT_COMPACT_LAYOUT = false;
private static final boolean DEFAULT_ROOTED = true;
private static final int DEFAULT_UPD_HISTORY = 14;
- private static final boolean DEFAULT_SYSTEM_INSTALLER = false;
+ private static final boolean DEFAULT_PRIVILEGED_INSTALLER = false;
private static final boolean DEFAULT_LOCAL_REPO_BONJOUR = true;
private static final boolean DEFAULT_CACHE_APK = false;
private static final boolean DEFAULT_LOCAL_REPO_HTTPS = false;
@@ -76,7 +76,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
public static final int DEFAULT_PROXY_PORT = 8118;
public static final boolean DEFAULT_SHOW_NFC_DURING_SWAP = true;
private static final boolean DEFAULT_FIRST_TIME = true;
- private static final boolean DEFAULT_POST_SYSTEM_INSTALL = false;
+ private static final boolean DEFAULT_POST_PRIVILEGED_INSTALL = false;
private boolean compactLayout = DEFAULT_COMPACT_LAYOUT;
private boolean filterAppsRequiringRoot = DEFAULT_ROOTED;
@@ -101,12 +101,12 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
initialized.put(key, false);
}
- public boolean isSystemInstallerEnabled() {
- return preferences.getBoolean(PREF_SYSTEM_INSTALLER, DEFAULT_SYSTEM_INSTALLER);
+ public boolean isPrivilegedInstallerEnabled() {
+ return preferences.getBoolean(PREF_PRIVILEGED_INSTALLER, DEFAULT_PRIVILEGED_INSTALLER);
}
- public void setSystemInstallerEnabled(boolean enable) {
- preferences.edit().putBoolean(PREF_SYSTEM_INSTALLER, enable).commit();
+ public void setPrivilegedInstallerEnabled(boolean enable) {
+ preferences.edit().putBoolean(PREF_PRIVILEGED_INSTALLER, enable).commit();
}
public boolean isFirstTime() {
@@ -117,12 +117,12 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
preferences.edit().putBoolean(PREF_FIRST_TIME, firstTime).commit();
}
- public boolean isPostSystemInstall() {
- return preferences.getBoolean(PREF_POST_SYSTEM_INSTALL, DEFAULT_POST_SYSTEM_INSTALL);
+ public boolean isPostPrivilegedInstall() {
+ return preferences.getBoolean(PREF_POST_PRIVILEGED_INSTALL, DEFAULT_POST_PRIVILEGED_INSTALL);
}
- public void setPostSystemInstall(boolean postInstall) {
- preferences.edit().putBoolean(PREF_POST_SYSTEM_INSTALL, postInstall).commit();
+ public void setPostPrivilegedInstall(boolean postInstall) {
+ preferences.edit().putBoolean(PREF_POST_PRIVILEGED_INSTALL, postInstall).commit();
}
public boolean shouldCacheApks() {
diff --git a/F-Droid/src/org/fdroid/fdroid/installer/Installer.java b/F-Droid/src/org/fdroid/fdroid/installer/Installer.java
index 77f3f9143..a6b725b31 100644
--- a/F-Droid/src/org/fdroid/fdroid/installer/Installer.java
+++ b/F-Droid/src/org/fdroid/fdroid/installer/Installer.java
@@ -19,7 +19,6 @@
package org.fdroid.fdroid.installer;
-import android.Manifest.permission;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -107,7 +106,7 @@ abstract public class Installer {
InstallerCallback callback) {
// system permissions and pref enabled -> SystemInstaller
- boolean isSystemInstallerEnabled = Preferences.get().isSystemInstallerEnabled();
+ boolean isSystemInstallerEnabled = Preferences.get().isPrivilegedInstallerEnabled();
if (isSystemInstallerEnabled) {
if (PrivilegedInstaller.isAvailable(activity)) {
Utils.DebugLog(TAG, "system permissions -> SystemInstaller");
diff --git a/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivileged.java b/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivileged.java
index c69292f55..a80c650dd 100644
--- a/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivileged.java
+++ b/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivileged.java
@@ -38,22 +38,20 @@ import eu.chainfire.libsuperuser.Shell;
abstract class InstallPrivileged {
protected final Context context;
- protected final String apkPath;
private static final String PACKAGE_NAME = "org.fdroid.fdroid.privileged";
- public InstallPrivileged(final Context context, final String apkPath) {
+ public InstallPrivileged(final Context context) {
this.context = context;
- this.apkPath = apkPath;
}
- public static InstallPrivileged create(final Context context, final String apkPath) {
+ public static InstallPrivileged create(final Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- return new LollipopImpl(context, apkPath);
+ return new LollipopImpl(context);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- return new KitKatToLollipopImpl(context, apkPath);
+ return new KitKatToLollipopImpl(context);
} else {
- return new PreKitKatImpl(context, apkPath);
+ return new PreKitKatImpl(context);
}
}
@@ -80,19 +78,19 @@ abstract class InstallPrivileged {
Shell.SU.run(commands);
}
- final void runInstall() {
+ final void runInstall(String apkPath) {
onPreInstall();
- Shell.SU.run(getInstallCommands());
+ Shell.SU.run(getInstallCommands(apkPath));
}
protected String getInstallPath() {
return getSystemFolder() + "FDroidPrivileged.apk";
}
- private List getInstallCommands() {
+ private List getInstallCommands(String apkPath) {
final List commands = new ArrayList<>();
commands.add("mount -o rw,remount /system");
- commands.addAll(getCopyToSystemCommands());
+ commands.addAll(getCopyToSystemCommands(apkPath));
commands.add("pm uninstall " + PACKAGE_NAME);
commands.add("mv " + getInstallPath() + ".tmp " + getInstallPath());
commands.add("pm install -r " + getInstallPath());
@@ -103,7 +101,7 @@ abstract class InstallPrivileged {
return commands;
}
- protected List getCopyToSystemCommands() {
+ protected List getCopyToSystemCommands(String apkPath) {
final List commands = new ArrayList<>(2);
commands.add("cat " + apkPath + " > " + getInstallPath() + ".tmp");
commands.add("chmod 644 " + getInstallPath() + ".tmp");
@@ -118,8 +116,8 @@ abstract class InstallPrivileged {
private static class PreKitKatImpl extends InstallPrivileged {
- public PreKitKatImpl(Context context, String apkPath) {
- super(context, apkPath);
+ public PreKitKatImpl(Context context) {
+ super(context);
}
@Override
@@ -131,8 +129,8 @@ abstract class InstallPrivileged {
private static class KitKatToLollipopImpl extends InstallPrivileged {
- public KitKatToLollipopImpl(Context context, String apkPath) {
- super(context, apkPath);
+ public KitKatToLollipopImpl(Context context) {
+ super(context);
}
/**
@@ -152,14 +150,14 @@ abstract class InstallPrivileged {
*/
private static class LollipopImpl extends InstallPrivileged {
- public LollipopImpl(Context context, String apkPath) {
- super(context, apkPath);
+ public LollipopImpl(Context context) {
+ super(context);
}
@Override
protected void onPreInstall() {
// Setup preference to execute postInstall after reboot
- Preferences.get().setPostSystemInstall(true);
+ Preferences.get().setPostPrivilegedInstall(true);
}
public String getWarningInfo() {
@@ -178,7 +176,7 @@ abstract class InstallPrivileged {
* Create app directory
*/
@Override
- protected List getCopyToSystemCommands() {
+ protected List getCopyToSystemCommands(String apkPath) {
List commands = new ArrayList<>(3);
commands.add("mkdir -p " + getSystemFolder()); // create app directory if not existing
commands.add("chmod 755 " + getSystemFolder());
diff --git a/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedBootReceiver.java b/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedBootReceiver.java
index 7f8598243..9a1cc0173 100644
--- a/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedBootReceiver.java
+++ b/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedBootReceiver.java
@@ -30,8 +30,8 @@ public class InstallPrivilegedBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
- if (Preferences.get().isPostSystemInstall()) {
- Preferences.get().setPostSystemInstall(false);
+ if (Preferences.get().isPostPrivilegedInstall()) {
+ Preferences.get().setPostPrivilegedInstall(false);
Intent postInstall = new Intent(context.getApplicationContext(), InstallPrivilegedDialogActivity.class);
postInstall.setAction(InstallPrivilegedDialogActivity.ACTION_POST_INSTALL);
diff --git a/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedDialogActivity.java b/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedDialogActivity.java
index b413cad0b..ece28975a 100644
--- a/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedDialogActivity.java
+++ b/F-Droid/src/org/fdroid/fdroid/privileged/install/InstallPrivilegedDialogActivity.java
@@ -40,7 +40,6 @@ import org.fdroid.fdroid.FDroid;
import org.fdroid.fdroid.FDroidApp;
import org.fdroid.fdroid.Preferences;
import org.fdroid.fdroid.R;
-import org.fdroid.fdroid.installer.Installer;
import org.fdroid.fdroid.installer.PrivilegedInstaller;
import eu.chainfire.libsuperuser.Shell;
@@ -88,7 +87,7 @@ public class InstallPrivilegedDialogActivity extends FragmentActivity {
Preferences.get().setFirstTime(false);
if (PrivilegedInstaller.isAvailable(context)) {
- Preferences.get().setSystemInstallerEnabled(true);
+ Preferences.get().setPrivilegedInstallerEnabled(true);
} else {
runFirstTime(context);
}
@@ -160,7 +159,7 @@ public class InstallPrivilegedDialogActivity extends FragmentActivity {
ContextThemeWrapper theme = new ContextThemeWrapper(this, FDroidApp.getCurThemeResId());
String message = getString(R.string.system_install_first_time_message) + "
"
- + InstallPrivileged.create(getApplicationContext(), null).getWarningInfo();
+ + InstallPrivileged.create(getApplicationContext()).getWarningInfo();
AlertDialog.Builder builder = new AlertDialog.Builder(theme)
.setMessage(Html.fromHtml(message))
@@ -269,7 +268,7 @@ public class InstallPrivilegedDialogActivity extends FragmentActivity {
@Override
protected Void doInBackground(Void... voids) {
- InstallPrivileged.create(getApplicationContext()).runInstall();
+ InstallPrivileged.create(getApplicationContext()).runInstall("test"); // TODO
return null;
}
};
@@ -284,7 +283,7 @@ public class InstallPrivilegedDialogActivity extends FragmentActivity {
final boolean success = PrivilegedInstaller.isAvailable(this);
// enable system installer on installation success
- Preferences.get().setSystemInstallerEnabled(success);
+ Preferences.get().setPrivilegedInstallerEnabled(success);
AlertDialog.Builder builder = new AlertDialog.Builder(theme)
.setTitle(success ? R.string.system_install_post_success : R.string.system_install_post_fail)
diff --git a/F-Droid/src/org/fdroid/fdroid/views/fragments/PreferencesFragment.java b/F-Droid/src/org/fdroid/fdroid/views/fragments/PreferencesFragment.java
index f87644e75..69c473651 100644
--- a/F-Droid/src/org/fdroid/fdroid/views/fragments/PreferencesFragment.java
+++ b/F-Droid/src/org/fdroid/fdroid/views/fragments/PreferencesFragment.java
@@ -21,7 +21,6 @@ import org.fdroid.fdroid.R;
import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.installer.PrivilegedInstaller;
import org.fdroid.fdroid.privileged.install.InstallPrivilegedDialogActivity;
-import org.fdroid.fdroid.installer.Installer;
import java.util.Locale;
@@ -42,7 +41,7 @@ public class PreferencesFragment extends PreferenceFragment
Preferences.PREF_LANGUAGE,
Preferences.PREF_CACHE_APK,
Preferences.PREF_EXPERT,
- Preferences.PREF_SYSTEM_INSTALLER,
+ Preferences.PREF_PRIVILEGED_INSTALLER,
Preferences.PREF_ENABLE_PROXY,
Preferences.PREF_PROXY_HOST,
Preferences.PREF_PROXY_PORT,
@@ -150,7 +149,7 @@ public class PreferencesFragment extends PreferenceFragment
checkSummary(key, R.string.expert_on);
break;
- case Preferences.PREF_SYSTEM_INSTALLER:
+ case Preferences.PREF_PRIVILEGED_INSTALLER:
checkSummary(key, R.string.system_installer_on);
break;
@@ -183,8 +182,8 @@ public class PreferencesFragment extends PreferenceFragment
/**
* Initializes SystemInstaller preference, which can only be enabled when F-Droid is installed as a system-app
*/
- protected void initSystemInstallerPreference() {
- CheckBoxPreference pref = (CheckBoxPreference) findPreference(Preferences.PREF_SYSTEM_INSTALLER);
+ protected void initPrivilegedInstallerPreference() {
+ CheckBoxPreference pref = (CheckBoxPreference) findPreference(Preferences.PREF_PRIVILEGED_INSTALLER);
// we are handling persistence ourself!
pref.setPersistent(false);
@@ -199,13 +198,13 @@ public class PreferencesFragment extends PreferenceFragment
if (PrivilegedInstaller.isAvailable(getActivity())) {
// system-permission are granted, i.e. F-Droid is a system-app
SharedPreferences.Editor editor = pref.getSharedPreferences().edit();
- editor.putBoolean(Preferences.PREF_SYSTEM_INSTALLER, true);
+ editor.putBoolean(Preferences.PREF_PRIVILEGED_INSTALLER, true);
editor.commit();
pref.setChecked(true);
} else {
// system-permission not available
SharedPreferences.Editor editor = pref.getSharedPreferences().edit();
- editor.putBoolean(Preferences.PREF_SYSTEM_INSTALLER, false);
+ editor.putBoolean(Preferences.PREF_PRIVILEGED_INSTALLER, false);
editor.commit();
pref.setChecked(false);
@@ -232,7 +231,7 @@ public class PreferencesFragment extends PreferenceFragment
}
} else {
SharedPreferences.Editor editor = pref.getSharedPreferences().edit();
- editor.putBoolean(Preferences.PREF_SYSTEM_INSTALLER, false);
+ editor.putBoolean(Preferences.PREF_PRIVILEGED_INSTALLER, false);
editor.commit();
pref.setChecked(false);
}
@@ -242,8 +241,8 @@ public class PreferencesFragment extends PreferenceFragment
});
}
- protected void initUninstallSystemAppPreference() {
- Preference pref = findPreference(Preferences.PREF_UNINSTALL_SYSTEM_APP);
+ protected void initUninstallPrivilegedAppPreference() {
+ Preference pref = findPreference(Preferences.PREF_UNINSTALL_PRIVILEGED_APP);
pref.setPersistent(false);
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@@ -281,8 +280,8 @@ public class PreferencesFragment extends PreferenceFragment
updateSummary(key, false);
}
- initSystemInstallerPreference();
- initUninstallSystemAppPreference();
+ initPrivilegedInstallerPreference();
+ initUninstallPrivilegedAppPreference();
}
@Override