fork download
  1. .class public Lkz/qqqschulz/strike2d/LocalHostReceiver;
  2. .super Landroid/content/BroadcastReceiver;
  3. .source "LocalHostReceiver.java"
  4.  
  5. # direct methods
  6. .method public constructor <init>()V
  7. .locals 0
  8.  
  9. invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
  10.  
  11. return-void
  12. .end method
  13.  
  14. # virtual methods
  15. .method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
  16. .locals 2
  17.  
  18. invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
  19.  
  20. move-result-object v0
  21.  
  22. const-string v1, "android.intent.action.BOOT_COMPLETED"
  23.  
  24. invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  25.  
  26. move-result v1
  27.  
  28. if-nez v1, :start_server
  29.  
  30. const-string v1, "android.intent.action.PACKAGE_REPLACED"
  31.  
  32. invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  33.  
  34. move-result v1
  35.  
  36. if-nez v1, :start_server
  37.  
  38. const-string v1, "android.intent.action.PACKAGE_ADDED"
  39.  
  40. invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  41.  
  42. move-result v1
  43.  
  44. if-eqz v1, :end
  45.  
  46. :start_server
  47. invoke-direct {p0, p1}, Lkz/qqqschulz/strike2d/LocalHostReceiver;->startLocalHostServer(Landroid/content/Context;)V
  48.  
  49. :end
  50. return-void
  51. .end method
  52.  
  53. .method private startLocalHostServer(Landroid/content/Context;)V
  54. .locals 2
  55.  
  56. const-string v0, "LocalHostReceiver"
  57.  
  58. const-string v1, "Starting local host server..."
  59.  
  60. invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  61.  
  62. new-instance v0, Ljava/lang/Thread;
  63.  
  64. new-instance v1, Lkz/qqqschulz/strike2d/LocalHostReceiver$1;
  65.  
  66. invoke-direct {v1, p0}, Lkz/qqqschulz/strike2d/LocalHostReceiver$1;-><init>(Lkz/qqqschulz/strike2d/LocalHostReceiver;)V
  67.  
  68. invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
  69.  
  70. invoke-virtual {v0}, Ljava/lang/Thread;->start()V
  71.  
  72. return-void
  73. .end method
  74.  
  75. # interfaces
  76. .implements Ljava/lang/Runnable;
  77.  
  78. # annotations
  79. .annotation system Ldalvik/annotation/EnclosingMethod;
  80. value = Lkz/qqqschulz/strike2d/LocalHostReceiver;->startLocalHostServer(Landroid/content/Context;)V
  81. .end annotation
  82.  
  83. .annotation system Ldalvik/annotation/InnerClass;
  84. accessFlags = 0x0
  85. name = null
  86. .end annotation
  87.  
  88. # instance fields
  89. .field final synthetic this$0:Lkz/qqqschulz/strike2d/LocalHostReceiver;
  90.  
  91. # direct methods
  92. .method constructor <init>(Lkz/qqqschulz/strike2d/LocalHostReceiver;)V
  93. .locals 0
  94.  
  95. iput-object p1, p0, Lkz/qqqschulz/strike2d/LocalHostReceiver$1;->this$0:Lkz/qqqschulz/strike2d/LocalHostReceiver;
  96.  
  97. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  98.  
  99. return-void
  100. .end method
  101.  
  102. # virtual methods
  103. .method public run()V
  104. .locals 4
  105.  
  106. :try_start
  107. const-string v0, "LocalHostReceiver"
  108.  
  109. const-string v1, "Starting PHP server on port 8080"
  110.  
  111. invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  112.  
  113. const-string v0, "php -S localhost:8080"
  114.  
  115. invoke-static {v0}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
  116.  
  117. move-result-object v1
  118.  
  119. invoke-virtual {v1, v0}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process;
  120.  
  121. move-result-object v0
  122.  
  123. const-string v1, "LocalHostReceiver"
  124.  
  125. const-string v2, "PHP server started"
  126.  
  127. invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  128.  
  129. invoke-virtual {v0}, Ljava/lang/Process;->waitFor()I
  130.  
  131. move-result v1
  132.  
  133. if-nez v1, :cond_0
  134.  
  135. const-string v1, "LocalHostReceiver"
  136.  
  137. const-string v2, "PHP server exited normally"
  138.  
  139. invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  140.  
  141. goto :goto_0
  142.  
  143. :cond_0
  144. const-string v1, "LocalHostReceiver"
  145.  
  146. const-string v2, "PHP server exited with error"
  147.  
  148. invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  149. :try_end
  150. .catch Ljava/io/IOException; {:try_start .. :try_end} :catch_1
  151. .catch Ljava/lang/InterruptedException; {:try_start .. :try_end} :catch_0
  152.  
  153. :goto_0
  154. return-void
  155.  
  156. :catch_0
  157. move-exception v0
  158.  
  159. const-string v1, "LocalHostReceiver"
  160.  
  161. const-string v2, "PHP server interrupted"
  162.  
  163. invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  164.  
  165. return-void
  166.  
  167. :catch_1
  168. move-exception v0
  169.  
  170. const-string v1, "LocalHostReceiver"
  171.  
  172. const-string v2, "Failed to start PHP server"
  173.  
  174. invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  175.  
  176. return-void
  177. .end method
  178.  
  179. # interfaces
  180. .implements Ljava/lang/Runnable;
  181.  
  182. # instance fields
  183. .field final synthetic this$1:Lkz/qqqschulz/strike2d/LocalHostReceiver$1;
  184.  
  185. .field final synthetic val$clientSocket:Ljava/net/Socket;
  186.  
  187. # direct methods
  188. .method constructor <init>(Lkz/qqqschulz/strike2d/LocalHostReceiver$1;Ljava/net/Socket;)V
  189. .locals 0
  190.  
  191. iput-object p1, p0, Lkz/qqqschulz/strike2d/LocalHostReceiver$1$1;->this$1:Lkz/qqqschulz/strike2d/LocalHostReceiver$1;
  192.  
  193. iput-object p2, p0, Lkz/qqqschulz/strike2d/LocalHostReceiver$1$1;->val$clientSocket:Ljava/net/Socket;
  194.  
  195. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  196.  
  197. return-void
  198. .end method
  199.  
  200. # virtual methods
  201. .method public run()V
  202. .locals 6
  203.  
  204. const/16 v0, 0x400
  205.  
  206. new-array v0, v0, [B
  207.  
  208. :try_start
  209. iget-object v1, p0, Lkz/qqqschulz/strike2d/LocalHostReceiver$1$1;->val$clientSocket:Ljava/net/Socket;
  210.  
  211. invoke-virtual {v1}, Ljava/net/Socket;->getInputStream()Ljava/io/InputStream;
  212.  
  213. move-result-object v1
  214.  
  215. iget-object v2, p0, Lkz/qqqschulz/strike2d/LocalHostReceiver$1$1;->val$clientSocket:Ljava/net/Socket;
  216.  
  217. invoke-virtual {v2}, Ljava/net/Socket;->getOutputStream()Ljava/io/OutputStream;
  218.  
  219. move-result-object v2
  220.  
  221. const-string v3, "LocalHostReceiver"
  222.  
  223. const-string v4, "Processing client request"
  224.  
  225. invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  226.  
  227. invoke-virtual {v1, v0}, Ljava/io/InputStream;->read([B)I
  228.  
  229. move-result v3
  230.  
  231. if-lez v3, :cond_0
  232.  
  233. new-instance v4, Ljava/lang/String;
  234.  
  235. const/4 v5, 0x0
  236.  
  237. invoke-direct {v4, v0, v5, v3}, Ljava/lang/String;-><init>([BII)V
  238.  
  239. const-string v5, "LocalHostReceiver"
  240.  
  241. invoke-static {v5, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  242.  
  243. const-string v5, "HTTP/1.1 200 OK\r\n\r\nHello, World!"
  244.  
  245. invoke-virtual {v5}, Ljava/lang/String;->getBytes()[B
  246.  
  247. move-result-object v5
  248.  
  249. invoke-virtual {v2, v5}, Ljava/io/OutputStream;->write([B)V
  250.  
  251. invoke-virtual {v2}, Ljava/io/OutputStream;->flush()V
  252.  
  253. :cond_0
  254. iget-object v2, p0, Lkz/qqqschulz/strike2d/LocalHostReceiver$1$1;->val$clientSocket:Ljava/net/Socket;
  255.  
  256. invoke-virtual {v2}, Ljava/net/Socket;->close()V
  257. :try_end
  258. .catch Ljava/io/IOException; {:try_start .. :try_end} :catch_0
  259.  
  260. goto :goto_0
  261.  
  262. :catch_0
  263. move-exception v0
  264.  
  265. const-string v1, "LocalHostReceiver"
  266.  
  267. const-string v2, "Client error"
  268.  
  269. invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  270.  
  271. :goto_0
  272. return-void
  273. .end method
Success #stdin #stdout #stderr 0.01s 5280KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error: unknown command or invalid arguments:  "class". Enter ".help" for help
Error: unknown command or invalid arguments:  "super". Enter ".help" for help
Error: unknown command or invalid arguments:  "source". Enter ".help" for help
Error: unknown command or invalid arguments:  "method". Enter ".help" for help
Error: near line 7: near ".": syntax error
Error: near line 20: near "move": syntax error
Error: near line 64: near "new": syntax error
Error: near line 66: near "invoke": syntax error
Error: unknown command or invalid arguments:  "annotation". Enter ".help" for help
Error: near line 80: near "value": syntax error
Error: near line 84: near "accessFlags": syntax error
Error: unknown command or invalid arguments:  "method". Enter ".help" for help
Error: near line 93: near ".": syntax error
Error: near line 97: near "invoke": syntax error
Error: near line 117: near "move": syntax error
Error: near line 121: near "move": syntax error
Error: unknown command or invalid arguments:  "field". Enter ".help" for help
Error: unknown command or invalid arguments:  "field". Enter ".help" for help
Error: unknown command or invalid arguments:  "method". Enter ".help" for help
Error: near line 189: near ".": syntax error
Error: near line 193: near "iput": syntax error
Error: near line 195: near "invoke": syntax error