From 9ee6c93f448548e66d84637f289b95427997de83 Mon Sep 17 00:00:00 2001 From: Kevin Abraham Date: Tue, 14 Mar 2017 18:52:56 -0400 Subject: [PATCH 1/4] Update libraries to latest version --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 83a6ca5..f1bed3e 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.0' + classpath 'com.android.tools.build:gradle:2.3.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 25aea78..d786aca 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -#Wed Mar 29 21:16:02 CEST 2017 +#Tue Mar 14 18:32:19 EDT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From feebaa865e8f6223b54a87c2d95315ccb931b941 Mon Sep 17 00:00:00 2001 From: Kevin Abraham Date: Tue, 14 Mar 2017 18:54:44 -0400 Subject: [PATCH 2/4] Add option to override OTA server --- .../efidroidmanager/AppConstants.java | 14 +++++- .../activities/MainActivity.java | 44 +++++++++++++------ .../types/SystemPropertiesProxy.java | 8 +++- .../main/res/menu/activity_main_drawer.xml | 4 ++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 54 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java b/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java index 4d7ff0f..4bfbe86 100644 --- a/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java +++ b/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java @@ -19,13 +19,25 @@ public final class AppConstants { public static final String PATH_INTERNAL_FSTAB = "fstab.multiboot"; private static String getUrlServer(Context context) { - String url = SystemPropertiesProxy.get(context, "efidroid.server_url", ""); + String url = getUrlServerConfig(context); if (TextUtils.isEmpty(url)) url = URL_EFIDROID_SERVER; return url; } + public static String getUrlServerConfig(Context context) { + String url = SystemPropertiesProxy.get(context, "efidroid.server_url", ""); + if (TextUtils.isEmpty(url)) + url = SystemPropertiesProxy.get(context, "persist.efidroid.server_url", ""); + + return url; + } + + public static void setUrlServerConfig(Context context, String serverUrl) { + SystemPropertiesProxy.set(context, "persist.efidroid.server_url", serverUrl); + } + public static String getUrlOta(Context context) { return getUrlServer(context) + "/ota/master"; } diff --git a/app/src/main/java/org/efidroid/efidroidmanager/activities/MainActivity.java b/app/src/main/java/org/efidroid/efidroidmanager/activities/MainActivity.java index 418dfd6..ef12dc4 100644 --- a/app/src/main/java/org/efidroid/efidroidmanager/activities/MainActivity.java +++ b/app/src/main/java/org/efidroid/efidroidmanager/activities/MainActivity.java @@ -28,6 +28,7 @@ import com.afollestad.materialdialogs.MaterialDialog; import com.melnykov.fab.FloatingActionButton; +import org.efidroid.efidroidmanager.AppConstants; import org.efidroid.efidroidmanager.DataHelper; import org.efidroid.efidroidmanager.R; import org.efidroid.efidroidmanager.RootToolsEx; @@ -49,21 +50,20 @@ public class MainActivity extends AppCompatActivity OperatingSystemFragment.OnOperatingSystemFragmentInteractionListener, DataHelper.DeviceInfoLoadCallback, InstallFragment.OnInstallFragmentInteractionListener { + // args + private static final String ARG_DEVICE_INFO = "deviceinfo"; + private static final String ARG_ACTIVEMENU_ID = "activemenu_id"; + private static final String ARG_HAS_ROOT = "has_root"; + private static final String ARG_OPERATING_SYSTEMS = "operating_systems"; + private static final String ARG_INSTALL_STATUS = "install_status"; // status private boolean hasRoot = false; private boolean mTouchDisabled = false; private int mActiveMenuItemId = 0; private MenuItem mPreviousMenuItem; private AsyncTask mFragmentLoadingTask = null; - // data private DeviceInfo mDeviceInfo = null; - - // args - private static final String ARG_DEVICE_INFO = "deviceinfo"; - private static final String ARG_ACTIVEMENU_ID = "activemenu_id"; - private static final String ARG_HAS_ROOT = "has_root"; - // UI private NavigationView mNavigationView; private FloatingActionButton mFab; @@ -75,10 +75,10 @@ public class MainActivity extends AppCompatActivity private CollapsingToolbarLayout mCollapsingToolbarLayout; private AppBarLayout mAppBarLayout; private FrameLayout mToolbarFrameLayout; - // operating systems private ArrayList mOperatingSystems; - private static final String ARG_OPERATING_SYSTEMS = "operating_systems"; + // installation + private InstallationStatus mInstallStatus = null; private AsyncTask makeOperatingSystemsTask() { final ArrayList list = new ArrayList<>(); @@ -158,10 +158,6 @@ protected void onPostExecute(Exception e) { }; } - // installation - private InstallationStatus mInstallStatus = null; - private static final String ARG_INSTALL_STATUS = "install_status"; - private AsyncTask makeInstallationStatusTask(final InstallFragment.InstallStatusLoadCallback callback) { final InstallationStatus installStatus = new InstallationStatus(); @@ -286,15 +282,31 @@ public void onDeviceInfoLoadError(Exception e) { new MaterialDialog.Builder(this) .title(R.string.error) .content(getString(R.string.cant_load_device_info_check_connection) + e.getLocalizedMessage()) - .positiveText(R.string.try_again) + .positiveText(R.string.try_again).neutralText(R.string.override_ota_server) .cancelable(false).onPositive(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { DataHelper.loadDeviceInfo(MainActivity.this, MainActivity.this); } + }).onNeutral(new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + showOverrideOTAServerDialog(); + } }).show(); } + public void showOverrideOTAServerDialog() { + new MaterialDialog.Builder(MainActivity.this).title(R.string.override_ota_server) + .input(null, AppConstants.getUrlServerConfig(MainActivity.this), new MaterialDialog.InputCallback() { + @Override + public void onInput(@NonNull MaterialDialog dialog, CharSequence input) { + AppConstants.setUrlServerConfig(MainActivity.this, input.toString()); + DataHelper.loadDeviceInfo(MainActivity.this, MainActivity.this); + } + }).show(); + } + private void onLoadUiData() { if (!hasRoot && !RootToolsEx.isAccessGiven(0, 0)) { new MaterialDialog.Builder(this) @@ -485,6 +497,10 @@ public void onRefresh() { } else { fragment = new InstallFragment(); } + } else if (id == R.id.nav_override_ota) { + mDrawer.closeDrawer(GravityCompat.START); + showOverrideOTAServerDialog(); + return true; } mActiveMenuItemId = item.getItemId(); diff --git a/app/src/main/java/org/efidroid/efidroidmanager/types/SystemPropertiesProxy.java b/app/src/main/java/org/efidroid/efidroidmanager/types/SystemPropertiesProxy.java index 17e46ad..6b4179f 100644 --- a/app/src/main/java/org/efidroid/efidroidmanager/types/SystemPropertiesProxy.java +++ b/app/src/main/java/org/efidroid/efidroidmanager/types/SystemPropertiesProxy.java @@ -251,8 +251,12 @@ public static void set(Context context, String key, String val) throws IllegalAr try { - @SuppressWarnings("unused") - DexFile df = new DexFile(new File("/system/app/Settings.apk")); + try { + @SuppressWarnings("unused") + DexFile df = new DexFile(new File("/system/app/Settings.apk")); + } catch (Exception e) { + e.printStackTrace(); + } @SuppressWarnings("unused") ClassLoader cl = context.getClassLoader(); @SuppressWarnings("rawtypes") diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index d17e7e1..3599807 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -33,6 +33,10 @@ android:id="@+id/nav_install" android:icon="@drawable/ic_menu_settings" android:title="@string/install_update" /> + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fe20d8e..e6fee92 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -75,6 +75,7 @@ "Can\'t load installation info. " Can\'t load device info. Please check your connection.\n\n Try again + Override OTA server You need Root access to use this app. I\'m running EFIDroid on my %1$s!\nMore info: http://efidroid.org Do you want to delete \'%1$s\'? From 097a40427f24606d5a813e790034988a959e2116 Mon Sep 17 00:00:00 2001 From: Kevin Abraham Date: Mon, 3 Jul 2017 23:06:43 -0400 Subject: [PATCH 3/4] Update gradle version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f1bed3e..0a26ece 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.1' + classpath 'com.android.tools.build:gradle:2.3.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From e80d6886efea669391abc259547e97d87ff64339 Mon Sep 17 00:00:00 2001 From: Kevin Abraham Date: Wed, 5 Jul 2017 10:56:20 -0400 Subject: [PATCH 4/4] Update server URL to point at Note 4 OTA --- .../main/java/org/efidroid/efidroidmanager/AppConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java b/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java index 4bfbe86..9bb6da0 100644 --- a/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java +++ b/app/src/main/java/org/efidroid/efidroidmanager/AppConstants.java @@ -8,7 +8,7 @@ import org.efidroid.efidroidmanager.types.SystemPropertiesProxy; public final class AppConstants { - private static final String URL_EFIDROID_SERVER = "https://raw.githubusercontent.com/efidroid"; + private static final String URL_EFIDROID_SERVER = "https://raw.githubusercontent.com/abraha2d"; public static final String DEVICE_NAME = Build.MANUFACTURER.toLowerCase() + "/" + Build.DEVICE.toLowerCase(); public static final String SHAREDPREFS_GLOBAL = "org.efidroid.efidroidmanager";