diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index db77429..7966112 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           package="com.fairphone.updater"
-    android:versionCode="30"
-    android:versionName="30 (FP 1.8.4)" >
+    android:versionCode="31"
+    android:versionName="31" >
 
     <uses-sdk
         android:minSdkVersion="17"
diff --git a/src/com/fairphone/updater/tools/Utils.java b/src/com/fairphone/updater/tools/Utils.java
index 92abe04..1fc64cc 100644
--- a/src/com/fairphone/updater/tools/Utils.java
+++ b/src/com/fairphone/updater/tools/Utils.java
@@ -442,34 +442,22 @@
         return result;
     }
 
-	public static void setBetaPropToEnable() {
-		if (PrivilegeChecker.isPrivilegedApp()) {
-			setBetaPropToEnablePrivileged();
-		} else {
-			setBetaPropToEnableUnprivileged();
-		}
-	}
-
-	private static void setBetaPropToEnablePrivileged() {
-	    ProcessBuilder pb = new ProcessBuilder("/system/bin/setprop", BetaEnabler.FAIRPHONE_BETA_PROPERTY, BetaEnabler.BETA_ENABLED);
-	    try {
-		    Process p = pb.start();
-		    p.waitFor();
-	    } catch (IOException | InterruptedException e) {
-		    Log.d(TAG, "Failed to setprop: " + e.getLocalizedMessage());
-	    }
-	}
-
-	private static void setBetaPropToEnableUnprivileged()
+	public static void setBetaPropToEnable()
     {
         if(RootTools.isAccessGiven()) {
-            CommandCapture command = new CommandCapture(0, "setprop "+ BetaEnabler.FAIRPHONE_BETA_PROPERTY+" "+BetaEnabler.BETA_ENABLED);
+            CommandCapture command = new CommandCapture(0, "/system/bin/setprop "+ BetaEnabler.FAIRPHONE_BETA_PROPERTY+" "+BetaEnabler.BETA_ENABLED);
             try {
                 Shell.runRootCommand(command);
             } catch (IOException | TimeoutException | RootDeniedException e) {
 	            Log.d(TAG, "Failed to setprop: " + e.getLocalizedMessage());
             }
         }
+        try {
+            Thread.sleep(200);
+        } catch (InterruptedException e) {
+
+        }
+        buildProps = null;
     }
 
     public static String getOtaPackagePath(Resources resources, DownloadableItem item, boolean isVersion, boolean isZipInstall){
