commit 150488dd9c04594cc646e38e728a16659683e6aa Author: Nathan Freitas nathan@freitas.net Date: Thu Apr 2 23:11:04 2015 -0400
fixes for onboot logic and handling --- AndroidManifest.xml | 16 +++++- .../torproject/android/service/OnBootReceiver.java | 7 +-- .../torproject/android/vpn/OrbotVpnService.java | 51 ++++++++++---------- 3 files changed, 43 insertions(+), 31 deletions(-)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 2dd7d1c..18e13c3 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -17,6 +17,7 @@ <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> +
<application android:name="org.torproject.android.OrbotApp" android:icon="@drawable/ic_launcher" android:label="@string/app_name" @@ -89,7 +90,8 @@ <activity android:name="org.torproject.android.ui.wizard.PromoAppsActivity" android:exported="false"/> - org.torproject.android.ui.wizard.ChooseLocaleWizardActivityui.ChooseLocaleWizardActivity" android:exported="false"/> + <activity android:name="org.torproject.android.ui.wizard.ChooseLocaleWizardActivity" android:exported="false"/> + <activity android:name=".settings.SettingsPreferences" android:label="@string/app_name"/> <activity android:name=".settings.AppManager" android:label="@string/app_name"/> @@ -105,11 +107,21 @@ </intent-filter> </service> - <receiver android:name="org.torproject.android.service.OnBootReceiver"> + <receiver android:name="org.torproject.android.service.OnBootReceiver" + android:enabled="true" android:exported="true" + + > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> + <category android:name="android.intent.category.HOME" /> + </intent-filter> + <intent-filter> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> + <category android:name="android.intent.category.HOME" /> + </intent-filter> + <intent-filter> <action android:name="android.intent.action.MEDIA_MOUNTED"/> + <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver> diff --git a/src/org/torproject/android/service/OnBootReceiver.java b/src/org/torproject/android/service/OnBootReceiver.java index 340bfab..9ed66ae 100644 --- a/src/org/torproject/android/service/OnBootReceiver.java +++ b/src/org/torproject/android/service/OnBootReceiver.java @@ -20,12 +20,13 @@ public class OnBootReceiver extends BroadcastReceiver { if (startOnBoot) { - if (useVPN) - startVpnService(context); startService(TorServiceConstants.CMD_INIT,context); startService(TorServiceConstants.CMD_START,context); - + + if (useVPN) + startVpnService(context); + }
} diff --git a/src/org/torproject/android/vpn/OrbotVpnService.java b/src/org/torproject/android/vpn/OrbotVpnService.java index 93a4d0a..ec841cb 100644 --- a/src/org/torproject/android/vpn/OrbotVpnService.java +++ b/src/org/torproject/android/vpn/OrbotVpnService.java @@ -28,8 +28,11 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.net.VpnService; import android.os.Build; import android.os.Handler; +import android.os.IBinder; import android.os.Message; +import android.os.Parcel; import android.os.ParcelFileDescriptor; +import android.os.RemoteException; import android.util.Log; import android.widget.Toast;
@@ -37,6 +40,7 @@ import com.runjva.sourceforge.jsocks.protocol.ProxyServer; import com.runjva.sourceforge.jsocks.server.ServerAuthenticatorNone;
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) + public class OrbotVpnService extends VpnService implements Handler.Callback { private static final String TAG = "OrbotVpnService";
@@ -217,37 +221,32 @@ public class OrbotVpnService extends VpnService implements Handler.Callback {
} - + @Override public void onRevoke() { - - new Thread () + + try { - public void run() + Log.d(TAG,"closing interface, destroying VPN interface"); + + //Tun2Socks.Stop(); + + if (mInterface != null) { - try - { - Log.d(TAG,"closing interface, destroying VPN interface"); - - //Tun2Socks.Stop(); - - if (mInterface != null) - { - mInterface.close(); - mInterface = null; - } - - } - catch (Exception e) - { - Log.d(TAG,"error stopping tun2socks",e); - } - catch (Error e) - { - Log.d(TAG,"error stopping tun2socks",e); - } + mInterface.close(); + mInterface = null; } - }.start(); + + } + catch (Exception e) + { + Log.d(TAG,"error stopping tun2socks",e); + } + catch (Error e) + { + Log.d(TAG,"error stopping tun2socks",e); + } + super.onRevoke(); }