Browse Source

Comments for MyServerSocketFactory and PrivilegedPort added

mip-it 10 years ago
parent
commit
36b46844c5

+ 149 - 149
gen/de/tudarmstadt/informatik/hostage/R.java

@@ -1,149 +1,149 @@
-/* AUTO-GENERATED FILE.  DO NOT MODIFY.
- *
- * This class was automatically generated by the
- * aapt tool from the resource data it found.  It
- * should not be modified by hand.
- */
-
-package de.tudarmstadt.informatik.hostage;
-
-public final class R {
-    public static final class anim {
-        public static final int in_left_to_right=0x7f040000;
-        public static final int in_right_to_left=0x7f040001;
-        public static final int out_left_to_right=0x7f040002;
-        public static final int out_right_to_left=0x7f040003;
-    }
-    public static final class array {
-        public static final int protocols=0x7f070002;
-        public static final int upload_entries=0x7f070000;
-        public static final int upload_values=0x7f070001;
-    }
-    public static final class attr {
-    }
-    public static final class dimen {
-        /**  Default screen margins, per the Android Design guidelines. 
-
-         Customize dimensions originally defined in res/values/dimens.xml (such as
-         screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
-    
-         */
-        public static final int activity_horizontal_margin=0x7f060000;
-        public static final int activity_vertical_margin=0x7f060001;
-    }
-    public static final class drawable {
-        public static final int ic_launcher=0x7f020000;
-        public static final int light_green=0x7f020001;
-        public static final int light_green_large=0x7f020002;
-        public static final int light_grey=0x7f020003;
-        public static final int light_grey_large=0x7f020004;
-        public static final int light_red=0x7f020005;
-        public static final int light_red_large=0x7f020006;
-        public static final int light_yellow=0x7f020007;
-        public static final int light_yellow_large=0x7f020008;
-    }
-    public static final class id {
-        public static final int TextViewServices=0x7f0b000f;
-        public static final int action_settings=0x7f0b001d;
-        public static final int buttonDeleteLog=0x7f0b0019;
-        public static final int buttonShowLog=0x7f0b0005;
-        public static final int buttonUploadLog=0x7f0b0018;
-        public static final int checkBoxParanoid=0x7f0b0003;
-        public static final int imageViewLight=0x7f0b0002;
-        public static final int layoutContainer=0x7f0b0012;
-        public static final int listViewProtocols=0x7f0b0010;
-        public static final int textFirstAttack=0x7f0b0013;
-        public static final int textFirstAttackValue=0x7f0b0014;
-        public static final int textLastAttack=0x7f0b0015;
-        public static final int textLastAttackValue=0x7f0b0016;
-        public static final int textLogFile=0x7f0b0017;
-        public static final int textStatistics=0x7f0b0011;
-        public static final int textViewBSSID=0x7f0b0009;
-        public static final int textViewBSSIDValue=0x7f0b000a;
-        public static final int textViewConnections=0x7f0b001b;
-        public static final int textViewConnectionsValue=0x7f0b001c;
-        public static final int textViewDetails=0x7f0b0006;
-        public static final int textViewExternalIP=0x7f0b000d;
-        public static final int textViewExternalIPValue=0x7f0b000e;
-        public static final int textViewInternalIP=0x7f0b000b;
-        public static final int textViewInternalIPValue=0x7f0b000c;
-        public static final int textViewProtocol=0x7f0b001a;
-        public static final int textViewSSID=0x7f0b0007;
-        public static final int textViewSSIDValue=0x7f0b0008;
-        public static final int textViewStatus=0x7f0b0001;
-        public static final int toggleButtonOnOff=0x7f0b0004;
-        public static final int viewAnimator=0x7f0b0000;
-    }
-    public static final class layout {
-        public static final int activity_main=0x7f030000;
-        public static final int activity_viewlog=0x7f030001;
-        public static final int list_view_protocols_row=0x7f030002;
-    }
-    public static final class menu {
-        public static final int main=0x7f0a0000;
-    }
-    public static final class string {
-        public static final int action_settings=0x7f080001;
-        public static final int app_name=0x7f080000;
-        public static final int bssid=0x7f080008;
-        public static final int capital_off=0x7f080003;
-        public static final int capital_on=0x7f080002;
-        public static final int connections=0x7f08000c;
-        public static final int details=0x7f080006;
-        public static final int external_ip=0x7f08000a;
-        public static final int firstAttack=0x7f08000f;
-        public static final int internal_ip=0x7f080009;
-        public static final int lastAttack=0x7f080010;
-        public static final int logFile=0x7f08000e;
-        public static final int paranoid=0x7f080005;
-        public static final int pref_alarm=0x7f080012;
-        public static final int pref_alarm_default=0x7f080013;
-        public static final int pref_external_storage_summ=0x7f080016;
-        public static final int pref_external_storage_title=0x7f080015;
-        public static final int pref_notification=0x7f080017;
-        public static final int pref_storage=0x7f080014;
-        public static final int pref_tracing=0x7f08001a;
-        public static final int pref_upload=0x7f08001b;
-        public static final int pref_upload_connection=0x7f08001d;
-        public static final int pref_upload_connection_summ=0x7f08001e;
-        public static final int pref_upload_summ=0x7f08001c;
-        public static final int pref_vibration=0x7f080018;
-        public static final int pref_vibration_summ=0x7f080019;
-        public static final int services=0x7f08000b;
-        public static final int settings=0x7f080011;
-        public static final int ssid=0x7f080007;
-        public static final int statistics=0x7f08000d;
-        public static final int status=0x7f080004;
-    }
-    public static final class style {
-        /** 
-        Base application theme, dependent on API level. This theme is replaced
-        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-    
-
-            Theme customizations available in newer API levels can go in
-            res/values-vXX/styles.xml, while customizations related to
-            backward-compatibility can go here.
-        
-
-        Base application theme for API 11+. This theme completely replaces
-        AppBaseTheme from res/values/styles.xml on API 11+ devices.
-    
- API 11 theme customizations can go here. 
-
-        Base application theme for API 14+. This theme completely replaces
-        AppBaseTheme from BOTH res/values/styles.xml and
-        res/values-v11/styles.xml on API 14+ devices.
-    
- API 14 theme customizations can go here. 
-         */
-        public static final int AppBaseTheme=0x7f090000;
-        /**  Application theme. 
- All customizations that are NOT specific to a particular API-level can go here. 
-         */
-        public static final int AppTheme=0x7f090001;
-    }
-    public static final class xml {
-        public static final int preferences=0x7f050000;
-    }
-}
+/* AUTO-GENERATED FILE.  DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found.  It
+ * should not be modified by hand.
+ */
+
+package de.tudarmstadt.informatik.hostage;
+
+public final class R {
+    public static final class anim {
+        public static final int in_left_to_right=0x7f040000;
+        public static final int in_right_to_left=0x7f040001;
+        public static final int out_left_to_right=0x7f040002;
+        public static final int out_right_to_left=0x7f040003;
+    }
+    public static final class array {
+        public static final int protocols=0x7f070002;
+        public static final int upload_entries=0x7f070000;
+        public static final int upload_values=0x7f070001;
+    }
+    public static final class attr {
+    }
+    public static final class dimen {
+        /**  Default screen margins, per the Android Design guidelines. 
+
+         Customize dimensions originally defined in res/values/dimens.xml (such as
+         screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
+    
+         */
+        public static final int activity_horizontal_margin=0x7f060000;
+        public static final int activity_vertical_margin=0x7f060001;
+    }
+    public static final class drawable {
+        public static final int ic_launcher=0x7f020000;
+        public static final int light_green=0x7f020001;
+        public static final int light_green_large=0x7f020002;
+        public static final int light_grey=0x7f020003;
+        public static final int light_grey_large=0x7f020004;
+        public static final int light_red=0x7f020005;
+        public static final int light_red_large=0x7f020006;
+        public static final int light_yellow=0x7f020007;
+        public static final int light_yellow_large=0x7f020008;
+    }
+    public static final class id {
+        public static final int TextViewServices=0x7f0b000f;
+        public static final int action_settings=0x7f0b001d;
+        public static final int buttonDeleteLog=0x7f0b0019;
+        public static final int buttonShowLog=0x7f0b0005;
+        public static final int buttonUploadLog=0x7f0b0018;
+        public static final int checkBoxParanoid=0x7f0b0003;
+        public static final int imageViewLight=0x7f0b0002;
+        public static final int layoutContainer=0x7f0b0012;
+        public static final int listViewProtocols=0x7f0b0010;
+        public static final int textFirstAttack=0x7f0b0013;
+        public static final int textFirstAttackValue=0x7f0b0014;
+        public static final int textLastAttack=0x7f0b0015;
+        public static final int textLastAttackValue=0x7f0b0016;
+        public static final int textLogFile=0x7f0b0017;
+        public static final int textStatistics=0x7f0b0011;
+        public static final int textViewBSSID=0x7f0b0009;
+        public static final int textViewBSSIDValue=0x7f0b000a;
+        public static final int textViewConnections=0x7f0b001b;
+        public static final int textViewConnectionsValue=0x7f0b001c;
+        public static final int textViewDetails=0x7f0b0006;
+        public static final int textViewExternalIP=0x7f0b000d;
+        public static final int textViewExternalIPValue=0x7f0b000e;
+        public static final int textViewInternalIP=0x7f0b000b;
+        public static final int textViewInternalIPValue=0x7f0b000c;
+        public static final int textViewProtocol=0x7f0b001a;
+        public static final int textViewSSID=0x7f0b0007;
+        public static final int textViewSSIDValue=0x7f0b0008;
+        public static final int textViewStatus=0x7f0b0001;
+        public static final int toggleButtonOnOff=0x7f0b0004;
+        public static final int viewAnimator=0x7f0b0000;
+    }
+    public static final class layout {
+        public static final int activity_main=0x7f030000;
+        public static final int activity_viewlog=0x7f030001;
+        public static final int list_view_protocols_row=0x7f030002;
+    }
+    public static final class menu {
+        public static final int main=0x7f0a0000;
+    }
+    public static final class string {
+        public static final int action_settings=0x7f080001;
+        public static final int app_name=0x7f080000;
+        public static final int bssid=0x7f080008;
+        public static final int capital_off=0x7f080003;
+        public static final int capital_on=0x7f080002;
+        public static final int connections=0x7f08000c;
+        public static final int details=0x7f080006;
+        public static final int external_ip=0x7f08000a;
+        public static final int firstAttack=0x7f08000f;
+        public static final int internal_ip=0x7f080009;
+        public static final int lastAttack=0x7f080010;
+        public static final int logFile=0x7f08000e;
+        public static final int paranoid=0x7f080005;
+        public static final int pref_alarm=0x7f080012;
+        public static final int pref_alarm_default=0x7f080013;
+        public static final int pref_external_storage_summ=0x7f080016;
+        public static final int pref_external_storage_title=0x7f080015;
+        public static final int pref_notification=0x7f080017;
+        public static final int pref_storage=0x7f080014;
+        public static final int pref_tracing=0x7f08001a;
+        public static final int pref_upload=0x7f08001b;
+        public static final int pref_upload_connection=0x7f08001d;
+        public static final int pref_upload_connection_summ=0x7f08001e;
+        public static final int pref_upload_summ=0x7f08001c;
+        public static final int pref_vibration=0x7f080018;
+        public static final int pref_vibration_summ=0x7f080019;
+        public static final int services=0x7f08000b;
+        public static final int settings=0x7f080011;
+        public static final int ssid=0x7f080007;
+        public static final int statistics=0x7f08000d;
+        public static final int status=0x7f080004;
+    }
+    public static final class style {
+        /** 
+        Base application theme, dependent on API level. This theme is replaced
+        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
+    
+
+            Theme customizations available in newer API levels can go in
+            res/values-vXX/styles.xml, while customizations related to
+            backward-compatibility can go here.
+        
+
+        Base application theme for API 11+. This theme completely replaces
+        AppBaseTheme from res/values/styles.xml on API 11+ devices.
+    
+ API 11 theme customizations can go here. 
+
+        Base application theme for API 14+. This theme completely replaces
+        AppBaseTheme from BOTH res/values/styles.xml and
+        res/values-v11/styles.xml on API 14+ devices.
+    
+ API 14 theme customizations can go here. 
+         */
+        public static final int AppBaseTheme=0x7f090000;
+        /**  Application theme. 
+ All customizations that are NOT specific to a particular API-level can go here. 
+         */
+        public static final int AppTheme=0x7f090001;
+    }
+    public static final class xml {
+        public static final int preferences=0x7f050000;
+    }
+}

+ 22 - 0
src/de/tudarmstadt/informatik/hostage/net/MyServerSocketFactory.java

@@ -13,6 +13,10 @@ import de.tudarmstadt.informatik.hostage.system.PrivilegedPort;
 
 public class MyServerSocketFactory extends ServerSocketFactory {
 
+	/**
+	 * This method creates and returns a ServerSocket. A custom SocketImpl is
+	 * injected into the ServerSocket.
+	 */
 	@Override
 	public ServerSocket createServerSocket(int port) throws IOException {
 		FileDescriptor fd = new PrivilegedPort(port).bindAndGetFD();
@@ -30,12 +34,18 @@ public class MyServerSocketFactory extends ServerSocketFactory {
 		return socket;
 	}
 
+	/**
+	 * Extracts the SocketImpl out of a ServerSocket.
+	 */
 	private SocketImpl getImpl(ServerSocket socket) throws Exception {
 		Field implField = socket.getClass().getDeclaredField("impl");
 		implField.setAccessible(true);
 		return (SocketImpl) implField.get(socket);
 	}
 
+	/**
+	 * Injects a FileDescriptor into a SocketImpl.
+	 */
 	private void injectFD(FileDescriptor fd, SocketImpl impl) throws Exception {
 		Class<?> plainServerSocketImplClazz = impl.getClass();
 		Class<?> plainSocketImplClazz = plainServerSocketImplClazz
@@ -46,6 +56,9 @@ public class MyServerSocketFactory extends ServerSocketFactory {
 		fdField.set(impl, fd);
 	}
 
+	/**
+	 * Injects a SocketImpl into a ServerSocket.
+	 */
 	private void injectImpl(SocketImpl impl, ServerSocket socket)
 			throws Exception {
 		Field implField = socket.getClass().getDeclaredField("impl");
@@ -53,18 +66,27 @@ public class MyServerSocketFactory extends ServerSocketFactory {
 		implField.set(socket, impl);
 	}
 
+	/**
+	 * Sets the isBound Field of a ServerSocket to true.
+	 */
 	private void setBound(ServerSocket socket) throws Exception {
 		Field boundField = socket.getClass().getDeclaredField("isBound");
 		boundField.setAccessible(true);
 		boundField.set(socket, true);
 	}
 
+	/**
+	 * Must override.
+	 */
 	@Override
 	public ServerSocket createServerSocket(int port, int backlog)
 			throws IOException {
 		return createServerSocket(port);
 	}
 
+	/**
+	 * Must override.
+	 */
 	@Override
 	public ServerSocket createServerSocket(int port, int backlog,
 			InetAddress iAddress) throws IOException {

+ 13 - 0
src/de/tudarmstadt/informatik/hostage/system/PrivilegedPort.java

@@ -7,14 +7,23 @@ import android.net.LocalSocket;
 
 public class PrivilegedPort implements Runnable {
 
+	/**
+	 * Path for UDS in abstract namespace.
+	 */
 	private final static String NAME = "hostage";
 
+	/**
+	 * Port to bind.
+	 */
 	private int port;
 
 	public PrivilegedPort(int port) {
 		this.port = port;
 	}
 
+	/**
+	 * Run porthack in separate Thread.
+	 */
 	@Override
 	public void run() {
 		Process p;
@@ -27,6 +36,10 @@ public class PrivilegedPort implements Runnable {
 		}
 	}
 
+	/**
+	 * Start porthack, wait for connection through UDS and receive a file
+	 * descriptor for bound port.
+	 */
 	public FileDescriptor bindAndGetFD() {
 		FileDescriptor fd = null;
 		try {