Updated the dev mode to be able to request any server in an edit text.
diff --git a/res/layout/fragment_main.xml b/res/layout/fragment_main.xml
index 329f58a..5355b9e 100644
--- a/res/layout/fragment_main.xml
+++ b/res/layout/fragment_main.xml
@@ -3,6 +3,28 @@
               android:layout_height="match_parent"
               android:orientation="vertical">
 
+    <LinearLayout
+        android:id="@+id/dev_mode_url_container"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal"
+        android:visibility="gone">
+
+        <EditText
+            android:id="@+id/dev_mode_url_edit_text"
+            android:layout_width="0dp"
+            android:layout_weight="5"
+            android:layout_height="wrap_content"/>
+
+        <Button
+            android:id="@+id/dev_mode_url_ok_button"
+            style="@style/ButtonTextBackgroundBlue"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_height="match_parent"
+            android:text="OK"/>
+    </LinearLayout>
+
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="0dp"
diff --git a/src/com/fairphone/updater/FairphoneUpdater.java b/src/com/fairphone/updater/FairphoneUpdater.java
index 84ffd90..d54560a 100644
--- a/src/com/fairphone/updater/FairphoneUpdater.java
+++ b/src/com/fairphone/updater/FairphoneUpdater.java
@@ -133,8 +133,13 @@
         mIsFirstTimeFairphone = mSharedPreferences.getBoolean(PREFERENCE_FIRST_TIME_FAIRPHONE, true);
 
         mIsFirstTimeAppStore = false;//mSharedPreferences.getBoolean(PREFERENCE_FIRST_TIME_APP_STORE, true);
-        
-        mOtaDownloadUrl = mSharedPreferences.getString(PREFERENCE_OTA_DOWNLOAD_URL, getResources().getString(R.string.downloadUrl));
+
+        mOtaDownloadUrl = getResources().getString(R.string.downloadUrl);
+
+        // reset download URL
+        Editor editor = mSharedPreferences.edit();
+        editor.putString(PREFERENCE_OTA_DOWNLOAD_URL, mOtaDownloadUrl);
+        editor.commit();
 
         // get system data
         mDeviceVersion = VersionParserHelper.getDeviceVersion(this);
@@ -226,6 +231,20 @@
         editor.commit();
     }
 
+    public void changeOTADownloadURL(String newUrl){
+        Editor editor = mSharedPreferences.edit();
+
+        mOtaDownloadUrl = newUrl;
+
+        editor.putString(PREFERENCE_OTA_DOWNLOAD_URL, newUrl);
+
+        editor.commit();
+    }
+
+    public void forceConfiDownload(){
+        Utils.downloadConfigFile(this, true);
+    }
+
     private void initHeaderViews()
     {
         headerMainFairphoneText = (TextView) findViewById(R.id.header_main_fairphone_text);
@@ -588,7 +607,8 @@
 
                 Log.d(TAG, "Developer mode enabled for this session");
 
-                Utils.downloadConfigFile(this, true);
+                forceConfiDownload();
+                //Utils.downloadConfigFile(this, true);
             }
         }
     }
diff --git a/src/com/fairphone/updater/fragments/MainFragment.java b/src/com/fairphone/updater/fragments/MainFragment.java
index 0a90297..6d38db2 100644
--- a/src/com/fairphone/updater/fragments/MainFragment.java
+++ b/src/com/fairphone/updater/fragments/MainFragment.java
@@ -12,6 +12,7 @@
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.widget.Button;
+import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -46,6 +47,9 @@
 	private RelativeLayout mGappsIcon;
     private Button mGappsButton;
     private Button mGappsDismissButton;
+    private LinearLayout mDevModeUrlContainer;
+    private EditText mDevModeUrlEditText;
+    private Button mDevModeUrlButton;
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
@@ -92,6 +96,25 @@
         mGappsButton = (Button) view.findViewById(R.id.install_gapps_button);
         mGappsDismissButton = (Button) view.findViewById(R.id.install_gapps_dismiss_button);
         mGappsIcon = (RelativeLayout) view.findViewById(R.id.gapps_reminder_group);
+
+        // Dev mode
+        mDevModeUrlEditText = (EditText)view.findViewById(R.id.dev_mode_url_edit_text);
+        mDevModeUrlButton = (Button)view.findViewById(R.id.dev_mode_url_ok_button);
+        mDevModeUrlContainer = (LinearLayout)view.findViewById(R.id.dev_mode_url_container);
+
+        mDevModeUrlButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String url = mDevModeUrlEditText.getText().toString();
+
+                // set the URL for the shared prefs
+                mainActivity.changeOTADownloadURL(url);
+
+                // download new code
+                mainActivity.forceConfiDownload();
+            }
+        });
+
     }
 
     private boolean getGappsInstalationButtonState()
@@ -269,6 +292,8 @@
                 public void onClick(View v)
                 {
                     mainActivity.onEnableDevMode();
+
+                    mDevModeUrlContainer.setVisibility(FairphoneUpdater.DEV_MODE_ENABLED ? View.VISIBLE : View.GONE);
                 }
             });
         }