changes to improve longevity of background service/Tor process
This commit is contained in:
parent
611558218d
commit
87d5ac9c44
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.torproject.android"
|
||||
android:versionName="14.1.1"
|
||||
android:versionCode="128"
|
||||
android:versionName="14.1.3-PIE"
|
||||
android:versionCode="130"
|
||||
android:installLocation="auto"
|
||||
>
|
||||
|
||||
<uses-sdk android:minSdkVersion="9" android:maxSdkVersion="20" android:targetSdkVersion="19"/>
|
||||
<uses-sdk android:minSdkVersion="21" android:maxSdkVersion="21" android:targetSdkVersion="21"/>
|
||||
<permission android:name="org.torproject.android.MANAGE_TOR" android:label="@string/permission_manage_tor_label" android:description="@string/permission_manage_tor_description" android:protectionLevel="signature"></permission>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
@ -23,6 +23,7 @@
|
|||
android:allowBackup="false"
|
||||
android:allowClearUserData="true"
|
||||
android:persistent="true"
|
||||
android:stopWithTask="false"
|
||||
>
|
||||
|
||||
<activity android:name=".Orbot" android:configChanges="orientation|screenSize"
|
||||
|
@ -85,6 +86,7 @@
|
|||
<service android:enabled="true"
|
||||
android:name=".service.TorService"
|
||||
android:permission="org.torproject.android.MANAGE_TOR"
|
||||
android:stopWithTask="false"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="org.torproject.android.service.ITorService" />
|
||||
|
|
|
@ -58,6 +58,7 @@ import org.torproject.android.vpn.OrbotVpnService;
|
|||
import android.annotation.SuppressLint;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Application;
|
||||
import android.app.IntentService;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
|
@ -330,8 +331,10 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
{
|
||||
startForeground(NOTIFY_ID, mNotification);
|
||||
}
|
||||
|
||||
mNotificationManager.notify(NOTIFY_ID, mNotification);
|
||||
else
|
||||
{
|
||||
mNotificationManager.notify(NOTIFY_ID, mNotification);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -340,19 +343,9 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
*/
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
|
||||
try
|
||||
{
|
||||
new Thread (new TorStarter(intent)).start();
|
||||
|
||||
new Thread (new TorStarter(intent)).start();
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
logException ("Error starting service",e);
|
||||
return Service.START_NOT_STICKY;
|
||||
}
|
||||
|
||||
return Service.START_REDELIVER_INTENT;
|
||||
return START_REDELIVER_INTENT;
|
||||
|
||||
}
|
||||
|
||||
|
@ -387,6 +380,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
}
|
||||
else if (action.equals(CMD_INIT))
|
||||
{
|
||||
initialize();
|
||||
sendCallbackStatus(mCurrentStatus);
|
||||
}
|
||||
else if (action.equals(CMD_NEWNYM))
|
||||
|
@ -421,7 +415,16 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
logNotice("Orbot was swiped away... background service will keep running");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean stopService(Intent name) {
|
||||
|
||||
logNotice("TorService is being stopped: " + name);
|
||||
|
||||
return super.stopService(name);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy ()
|
||||
{
|
||||
super.onDestroy();
|
||||
|
@ -430,6 +433,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
|
||||
unregisterReceiver(mNetworkStateReceiver);
|
||||
|
||||
clearNotifications ();
|
||||
|
||||
}
|
||||
|
||||
private void stopTor ()
|
||||
|
@ -930,22 +935,19 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
return true;
|
||||
}
|
||||
|
||||
Shell mShellTor;
|
||||
|
||||
private boolean runTorShellCmd() throws Exception
|
||||
{
|
||||
|
||||
Shell shellTor;
|
||||
|
||||
String torrcPath = new File(appBinHome, TORRC_ASSET_KEY).getCanonicalPath();
|
||||
|
||||
updateTorConfigFile();
|
||||
|
||||
sendCallbackLogMessage(getString(R.string.status_starting_up));
|
||||
|
||||
if (mShellTor != null)
|
||||
mShellTor.close();
|
||||
|
||||
//start Tor in the background
|
||||
mShellTor = Shell.startShell();
|
||||
shellTor = Shell.startShell();
|
||||
|
||||
String torCmdString = fileTor.getCanonicalPath()
|
||||
+ " DataDirectory " + appCacheHome.getCanonicalPath()
|
||||
|
@ -955,7 +957,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
debug(torCmdString);
|
||||
|
||||
SimpleCommand shellTorCommand = new SimpleCommand(torCmdString + " --verify-config");
|
||||
mShellTor.add(shellTorCommand).waitForFinish();
|
||||
shellTor.add(shellTorCommand).waitForFinish();
|
||||
|
||||
int exitCode = shellTorCommand.getExitCode();
|
||||
String output = shellTorCommand.getOutput();
|
||||
|
@ -968,7 +970,7 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
}
|
||||
|
||||
shellTorCommand = new SimpleCommand(torCmdString);
|
||||
mShellTor.add(shellTorCommand).waitForFinish();
|
||||
shellTor.add(shellTorCommand).waitForFinish();
|
||||
|
||||
exitCode = shellTorCommand.getExitCode();
|
||||
output = shellTorCommand.getOutput();
|
||||
|
@ -1001,6 +1003,8 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
|
||||
}
|
||||
|
||||
shellTor.close();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -2475,5 +2479,4 @@ public class TorService extends Service implements TorServiceConstants, TorConst
|
|||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue