--- /home/hans/code/fdroid/data/tmp/org.primftpd_19.apk +++ /home/hans/code/fdroid/data/tmp/sigcp_org.primftpd_19.apk ├── zipinfo {} │ @@ -1,14 +1,11 @@ │ -Zip file size: 2393227 bytes, number of entries: 307 │ +Zip file size: 2392542 bytes, number of entries: 307 │ -rw---- 2.0 fat 29530 bl defN 08-Jan-01 00:00 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 29651 bl defN 08-Jan-01 00:00 META-INF/230AF51A.SF │ -rw---- 2.0 fat 1291 bl defN 08-Jan-01 00:00 META-INF/230AF51A.RSA │ --rw---- 2.0 fat 895 bl defN 08-Jan-01 00:00 META-INF/spring.handlers │ --rw---- 2.0 fat 892 bl defN 08-Jan-01 00:00 META-INF/spring.schemas │ --rw---- 2.0 fat 921 bl defN 08-Jan-01 00:00 META-INF/services/org.apache.sshd.common.io.IoServiceFactoryFactory │ -rw---- 2.0 fat 41 bl defN 08-Jan-01 00:00 META-INF/buildserverid │ -rw---- 2.0 fat 41 bl defN 08-Jan-01 00:00 META-INF/fdroidserverid │ -rw---- 2.0 fat 7288 bX defN 08-Jan-01 00:00 AndroidManifest.xml │ -rw---- 2.0 fat 740 bl defN 08-Jan-01 00:00 res/drawable-anydpi-v21/play.xml │ -rw---- 2.0 fat 1100 bl defN 08-Jan-01 00:00 res/drawable-anydpi-v21/refresh.xml │ -rw---- 2.0 fat 2496 bl defN 08-Jan-01 00:00 res/drawable-anydpi-v21/settings.xml │ -rw---- 2.0 fat 716 bl defN 08-Jan-01 00:00 res/drawable-anydpi-v21/stop.xml │ @@ -293,17 +290,20 @@ │ -rw---- 2.0 fat 3424 bl defN 08-Jan-01 00:00 res/layout/main.xml │ -rw---- 2.0 fat 564 bl defN 08-Jan-01 00:00 res/layout/tasker_edit_activity.xml │ -rw---- 2.0 fat 1028 bl defN 08-Jan-01 00:00 res/layout/widget.xml │ -rw---- 2.0 fat 1120 bl defN 08-Jan-01 00:00 res/menu/pftpd.xml │ -rw---- 2.0 fat 3460 bl defN 08-Jan-01 00:00 res/xml/preferences.xml │ -rw---- 2.0 fat 420 bl defN 08-Jan-01 00:00 res/xml/widget_info.xml │ -rw---- 1.0 fat 46536 b- stor 08-Jan-01 00:00 resources.arsc │ --rw---- 2.0 fat 5285300 bl defN 08-Jan-01 00:00 classes.dex │ +-rw---- 2.0 fat 5285040 bl defN 08-Jan-01 00:00 classes.dex │ +-rw---- 2.0 fat 921 bl defN 08-Jan-01 00:00 META-INF/services/org.apache.sshd.common.io.IoServiceFactoryFactory │ +-rw---- 2.0 fat 231140 bl defN 08-Jan-01 00:00 org/apache/sshd/moduli │ +-rw---- 2.0 fat 832 bl defN 08-Jan-01 00:00 org/apache/sshd/sshd-version.properties │ +-rw---- 2.0 fat 895 bl defN 08-Jan-01 00:00 META-INF/spring.handlers │ +-rw---- 2.0 fat 892 bl defN 08-Jan-01 00:00 META-INF/spring.schemas │ -rw---- 2.0 fat 10836 bl defN 08-Jan-01 00:00 org/apache/ftpserver/config/spring/ftpserver-1.0.xsd │ -rw---- 2.0 fat 10887 bl defN 08-Jan-01 00:00 org/apache/ftpserver/message/FtpStatus.properties │ -rw---- 2.0 fat 803 bl defN 08-Jan-01 00:00 org/apache/ftpserver/message/FtpStatus_en.properties │ -rw---- 2.0 fat 10905 bl defN 08-Jan-01 00:00 org/apache/ftpserver/message/FtpStatus_zh-tw.properties │ -rw---- 2.0 fat 42868 bl defN 08-Jan-01 00:00 org/bouncycastle/x509/CertPathReviewerMessages.properties │ -rw---- 2.0 fat 49608 bl defN 08-Jan-01 00:00 org/bouncycastle/x509/CertPathReviewerMessages_de.properties │ --rw---- 2.0 fat 231140 bl defN 08-Jan-01 00:00 org/apache/sshd/moduli │ --rw---- 2.0 fat 832 bl defN 08-Jan-01 00:00 org/apache/sshd/sshd-version.properties │ -307 files, 5981436 bytes uncompressed, 2342130 bytes compressed: 60.8% │ +307 files, 5981176 bytes uncompressed, 2341994 bytes compressed: 60.8% ├── APK metadata │ @@ -5,20 +5,20 @@ │ isFrameworkApk: false │ packageInfo: null │ sdkInfo: │ minSdkVersion: '15' │ targetSdkVersion: '22' │ sharedLibrary: false │ unknownFiles: │ + org/apache/sshd/moduli: '8' │ + org/apache/sshd/sshd-version.properties: '8' │ org/apache/ftpserver/config/spring/ftpserver-1.0.xsd: '8' │ org/apache/ftpserver/message/FtpStatus.properties: '8' │ org/apache/ftpserver/message/FtpStatus_en.properties: '8' │ org/apache/ftpserver/message/FtpStatus_zh-tw.properties: '8' │ - org/apache/sshd/moduli: '8' │ - org/apache/sshd/sshd-version.properties: '8' │ org/bouncycastle/x509/CertPathReviewerMessages.properties: '8' │ org/bouncycastle/x509/CertPathReviewerMessages_de.properties: '8' │ usesFramework: │ ids: │ - 1 │ tag: null │ version: 2.2.1-dirty ├── AndroidManifest.xml │ @@ -1,9 +1,9 @@ │ │ - ├── smali/org/primftpd/PrimitiveFtpdActivity$1.smali │ @@ -17,14 +17,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/PrimitiveFtpdActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/PrimitiveFtpdActivity; │ │ .prologue │ .line 62 │ iput-object p1, p0, Lorg/primftpd/PrimitiveFtpdActivity$1;->this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ invoke-direct {p0}, Landroid/content/BroadcastReceiver;->()V │ │ @@ -42,22 +43,25 @@ │ .line 65 │ iget-object v0, p0, Lorg/primftpd/PrimitiveFtpdActivity$1;->this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ iget-object v0, v0, Lorg/primftpd/PrimitiveFtpdActivity;->logger:Lorg/slf4j/Logger; │ │ const-string v1, "network connectivity changed, data str: \'{}\', action: \'{}\'" │ │ + .line 66 │ invoke-virtual {p2}, Landroid/content/Intent;->getDataString()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 67 │ invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 65 │ invoke-interface {v0, v1, v2, v3}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 68 │ iget-object v0, p0, Lorg/primftpd/PrimitiveFtpdActivity$1;->this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ invoke-virtual {v0}, Lorg/primftpd/PrimitiveFtpdActivity;->showAddresses()V ├── smali/org/primftpd/PrimitiveFtpdActivity$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/PrimitiveFtpdActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/PrimitiveFtpdActivity; │ │ .prologue │ .line 76 │ iput-object p1, p0, Lorg/primftpd/PrimitiveFtpdActivity$2;->this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/PrimitiveFtpdActivity$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/PrimitiveFtpdActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/PrimitiveFtpdActivity; │ │ .prologue │ .line 347 │ iput-object p1, p0, Lorg/primftpd/PrimitiveFtpdActivity$3;->this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment; │ │ .prologue │ .line 385 │ iput-object p1, p0, Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment$1;->this$0:Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment$2.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment; │ │ .prologue │ .line 392 │ iput-object p1, p0, Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment$2;->this$0:Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAskDialogFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/PrimitiveFtpdActivity$GenKeysAsyncTask.smali │ @@ -32,14 +32,15 @@ │ │ .field final synthetic this$0:Lorg/primftpd/PrimitiveFtpdActivity; │ │ │ # direct methods │ .method public constructor (Lorg/primftpd/PrimitiveFtpdActivity;Landroid/app/ProgressDialog;Z)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/PrimitiveFtpdActivity; │ .param p2, "progressDiag" # Landroid/app/ProgressDialog; │ .param p3, "startServerOnFinish" # Z │ │ .prologue │ .line 409 │ iput-object p1, p0, Lorg/primftpd/PrimitiveFtpdActivity$GenKeysAsyncTask;->this$0:Lorg/primftpd/PrimitiveFtpdActivity; ├── smali/org/primftpd/PrimitiveFtpdActivity.smali │ @@ -116,15 +116,14 @@ │ iput-object v0, p0, Lorg/primftpd/PrimitiveFtpdActivity;->fingerprintSha256:Ljava/lang/String; │ │ .line 99 │ const-wide/16 v0, 0x0 │ │ iput-wide v0, p0, Lorg/primftpd/PrimitiveFtpdActivity;->timestampOfLastEvent:J │ │ - .line 402 │ return-void │ .end method │ │ .method static synthetic access$002(Z)Z │ .locals 0 │ .param p0, "x0" # Z │ │ @@ -536,18 +535,20 @@ │ │ .prologue │ .line 621 │ const-string v2, "loggingPref" │ │ sget-object v3, Lorg/primftpd/prefs/Logging;->NONE:Lorg/primftpd/prefs/Logging; │ │ + .line 623 │ invoke-virtual {v3}, Lorg/primftpd/prefs/Logging;->xmlValue()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 621 │ invoke-interface {p1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ .line 624 │ .local v1, "loggingStr":Ljava/lang/String; │ invoke-static {v1}, Lorg/primftpd/prefs/Logging;->byXmlVal(Ljava/lang/String;)Lorg/primftpd/prefs/Logging; │ @@ -639,27 +640,29 @@ │ │ invoke-virtual {v0}, Lorg/primftpd/util/ServersRunningBean;->atLeastOneRunning()Z │ │ move-result v0 │ │ if-eqz v0, :cond_0 │ │ - .line 612 │ + .line 613 │ invoke-virtual {p0}, Lorg/primftpd/PrimitiveFtpdActivity;->getApplicationContext()Landroid/content/Context; │ │ move-result-object v0 │ │ const v1, 0x7f06002d │ │ const/4 v2, 0x1 │ │ + .line 612 │ invoke-static {v0, v1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v0 │ │ + .line 615 │ invoke-virtual {v0}, Landroid/widget/Toast;->show()V │ │ .line 618 │ :cond_0 │ return-void │ .end method │ │ @@ -814,14 +817,15 @@ │ │ const-string v2, "%s (%s)" │ │ new-array v3, v7, [Ljava/lang/Object; │ │ const v4, 0x7f06000b │ │ + .line 127 │ invoke-virtual {p0, v4}, Lorg/primftpd/PrimitiveFtpdActivity;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v4 │ │ aput-object v4, v3, v5 │ │ const v4, 0x7f060009 │ @@ -832,14 +836,15 @@ │ │ aput-object v4, v3, v6 │ │ invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 126 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 131 │ const v1, 0x7f0b000e │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ @@ -851,14 +856,15 @@ │ │ const/4 v3, 0x3 │ │ new-array v3, v3, [Ljava/lang/Object; │ │ const v4, 0x7f06002b │ │ + .line 133 │ invoke-virtual {p0, v4}, Lorg/primftpd/PrimitiveFtpdActivity;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v4 │ │ aput-object v4, v3, v5 │ │ const v4, 0x7f060010 │ @@ -873,18 +879,20 @@ │ │ invoke-virtual {p0, v4}, Lorg/primftpd/PrimitiveFtpdActivity;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v4 │ │ aput-object v4, v3, v7 │ │ + .line 132 │ invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 131 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 137 │ invoke-static {}, Lorg/greenrobot/eventbus/EventBus;->getDefault()Lorg/greenrobot/eventbus/EventBus; │ │ move-result-object v1 │ │ @@ -1285,24 +1293,26 @@ │ │ const/16 v16, 0x2 │ │ aput-object v6, v15, v16 │ │ const/16 v16, 0x3 │ │ + .line 277 │ invoke-virtual {v9}, Ljava/net/InetAddress;->isLoopbackAddress()Z │ │ move-result v17 │ │ invoke-static/range {v17 .. v17}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v17 │ │ aput-object v17, v15, v16 │ │ + .line 272 │ invoke-interface {v13, v14, v15}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;[Ljava/lang/Object;)V │ │ .line 279 │ invoke-virtual {v9}, Ljava/net/InetAddress;->isLoopbackAddress()Z │ │ move-result v13 │ │ @@ -1570,79 +1580,85 @@ │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ const-string v2, "MD5" │ │ + .line 332 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 333 │ const v1, 0x7f0b0017 │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ const-string v2, "SHA1" │ │ + .line 334 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 335 │ const v1, 0x7f0b0019 │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ const-string v2, "SHA256" │ │ + .line 336 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 338 │ const v1, 0x7f0b0016 │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ iget-object v2, p0, Lorg/primftpd/PrimitiveFtpdActivity;->fingerprintMd5:Ljava/lang/String; │ │ + .line 339 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 340 │ const v1, 0x7f0b0018 │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ iget-object v2, p0, Lorg/primftpd/PrimitiveFtpdActivity;->fingerprintSha1:Ljava/lang/String; │ │ + .line 341 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 342 │ const v1, 0x7f0b001a │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ move-result-object v1 │ │ check-cast v1, Landroid/widget/TextView; │ │ iget-object v2, p0, Lorg/primftpd/PrimitiveFtpdActivity;->fingerprintSha256:Ljava/lang/String; │ │ + .line 343 │ invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 346 │ const v1, 0x7f0b0014 │ │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ @@ -1690,14 +1706,15 @@ │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ iget-object v4, p0, Lorg/primftpd/PrimitiveFtpdActivity;->prefsBean:Lorg/primftpd/PrefsBean; │ │ + .line 307 │ invoke-virtual {v4}, Lorg/primftpd/PrefsBean;->getPortStr()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -1712,27 +1729,29 @@ │ │ iget-boolean v1, v1, Lorg/primftpd/util/ServersRunningBean;->ftp:Z │ │ if-eqz v1, :cond_0 │ │ move v1, v2 │ │ + .line 308 │ :goto_0 │ invoke-virtual {p0, v1}, Lorg/primftpd/PrimitiveFtpdActivity;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v1 │ │ invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 307 │ invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 312 │ const v0, 0x7f0b0010 │ │ invoke-virtual {p0, v0}, Lorg/primftpd/PrimitiveFtpdActivity;->findViewById(I)Landroid/view/View; │ │ @@ -1748,14 +1767,15 @@ │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ iget-object v4, p0, Lorg/primftpd/PrimitiveFtpdActivity;->prefsBean:Lorg/primftpd/PrefsBean; │ │ + .line 313 │ invoke-virtual {v4}, Lorg/primftpd/PrefsBean;->getSecurePortStr()Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ @@ -1768,42 +1788,44 @@ │ │ iget-object v4, p0, Lorg/primftpd/PrimitiveFtpdActivity;->serversRunning:Lorg/primftpd/util/ServersRunningBean; │ │ iget-boolean v4, v4, Lorg/primftpd/util/ServersRunningBean;->ssh:Z │ │ if-eqz v4, :cond_1 │ │ + .line 314 │ :goto_1 │ invoke-virtual {p0, v2}, Lorg/primftpd/PrimitiveFtpdActivity;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 313 │ invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V │ │ .line 317 │ return-void │ │ :cond_0 │ move v1, v3 │ │ - .line 306 │ + .line 307 │ goto :goto_0 │ │ :cond_1 │ move v2, v3 │ │ - .line 312 │ + .line 313 │ goto :goto_1 │ .end method │ │ .method protected showUsername()V │ .locals 2 │ │ .prologue ├── smali/org/primftpd/StartStopWidgetProvider.smali │ @@ -40,95 +40,90 @@ │ invoke-super {p0, p1}, Landroid/appwidget/AppWidgetProvider;->onEnabled(Landroid/content/Context;)V │ │ .line 21 │ return-void │ .end method │ │ .method public onUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[I)V │ - .locals 10 │ + .locals 9 │ .param p1, "context" # Landroid/content/Context; │ .param p2, "appWidgetManager" # Landroid/appwidget/AppWidgetManager; │ .param p3, "appWidgetIds" # [I │ │ .prologue │ - const/4 v9, 0x0 │ + const/4 v5, 0x0 │ │ .line 25 │ invoke-super {p0, p1, p2, p3}, Landroid/appwidget/AppWidgetProvider;->onUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[I)V │ │ .line 26 │ - iget-object v7, p0, Lorg/primftpd/StartStopWidgetProvider;->logger:Lorg/slf4j/Logger; │ + iget-object v4, p0, Lorg/primftpd/StartStopWidgetProvider;->logger:Lorg/slf4j/Logger; │ │ - const-string v8, "onUpdate()" │ + const-string v6, "onUpdate()" │ │ - invoke-interface {v7, v8}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;)V │ + invoke-interface {v4, v6}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;)V │ │ .line 28 │ - move-object v1, p3 │ - │ - .local v1, "arr$":[I │ - array-length v4, v1 │ + array-length v6, p3 │ │ - .local v4, "len$":I │ - const/4 v2, 0x0 │ + move v4, v5 │ │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v4, :cond_0 │ + if-ge v4, v6, :cond_0 │ │ - aget v0, v1, v2 │ + aget v0, p3, v4 │ │ .line 29 │ .local v0, "appWidgetId":I │ - new-instance v3, Landroid/content/Intent; │ + new-instance v1, Landroid/content/Intent; │ │ const-class v7, Lorg/primftpd/services/ServicesStartingService; │ │ - invoke-direct {v3, p1, v7}, Landroid/content/Intent;->(Landroid/content/Context;Ljava/lang/Class;)V │ + invoke-direct {v1, p1, v7}, Landroid/content/Intent;->(Landroid/content/Context;Ljava/lang/Class;)V │ │ .line 30 │ - .local v3, "intent":Landroid/content/Intent; │ - invoke-static {p1, v9, v3, v9}, Landroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; │ + .local v1, "intent":Landroid/content/Intent; │ + invoke-static {p1, v5, v1, v5}, Landroid/app/PendingIntent;->getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 31 │ - .local v5, "pendingIntent":Landroid/app/PendingIntent; │ + .local v2, "pendingIntent":Landroid/app/PendingIntent; │ iget-object v7, p0, Lorg/primftpd/StartStopWidgetProvider;->logger:Lorg/slf4j/Logger; │ │ const-string v8, "pendingIntent: {}" │ │ - invoke-interface {v7, v8, v5}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;)V │ + invoke-interface {v7, v8, v2}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;)V │ │ .line 33 │ - new-instance v6, Landroid/widget/RemoteViews; │ + new-instance v3, Landroid/widget/RemoteViews; │ │ invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String; │ │ move-result-object v7 │ │ const v8, 0x7f030003 │ │ - invoke-direct {v6, v7, v8}, Landroid/widget/RemoteViews;->(Ljava/lang/String;I)V │ + invoke-direct {v3, v7, v8}, Landroid/widget/RemoteViews;->(Ljava/lang/String;I)V │ │ .line 34 │ - .local v6, "views":Landroid/widget/RemoteViews; │ + .local v3, "views":Landroid/widget/RemoteViews; │ const v7, 0x7f0b001b │ │ - invoke-virtual {v6, v7, v5}, Landroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V │ + invoke-virtual {v3, v7, v2}, Landroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V │ │ .line 35 │ - invoke-virtual {p2, v0, v6}, Landroid/appwidget/AppWidgetManager;->updateAppWidget(ILandroid/widget/RemoteViews;)V │ + invoke-virtual {p2, v0, v3}, Landroid/appwidget/AppWidgetManager;->updateAppWidget(ILandroid/widget/RemoteViews;)V │ │ .line 28 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v4, v4, 0x1 │ │ goto :goto_0 │ │ .line 37 │ .end local v0 # "appWidgetId":I │ - .end local v3 # "intent":Landroid/content/Intent; │ - .end local v5 # "pendingIntent":Landroid/app/PendingIntent; │ - .end local v6 # "views":Landroid/widget/RemoteViews; │ + .end local v1 # "intent":Landroid/content/Intent; │ + .end local v2 # "pendingIntent":Landroid/app/PendingIntent; │ + .end local v3 # "views":Landroid/widget/RemoteViews; │ :cond_0 │ return-void │ .end method ├── smali/org/primftpd/R.smali │ @@ -26,10 +26,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 228 │ return-void │ .end method ├── smali/org/primftpd/filesystem/AndroidFile$1.smali │ @@ -19,18 +19,19 @@ │ │ .field final synthetic val$raf:Ljava/io/RandomAccessFile; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/filesystem/AndroidFile;Ljava/io/RandomAccessFile;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/filesystem/AndroidFile; │ │ .prologue │ .line 186 │ - .local p0, "this":Lorg/primftpd/filesystem/AndroidFile$1;, "Lorg/primftpd/filesystem/AndroidFile.1;" │ + .local p0, "this":Lorg/primftpd/filesystem/AndroidFile$1;, "Lorg/primftpd/filesystem/AndroidFile$1;" │ iput-object p1, p0, Lorg/primftpd/filesystem/AndroidFile$1;->this$0:Lorg/primftpd/filesystem/AndroidFile; │ │ iput-object p2, p0, Lorg/primftpd/filesystem/AndroidFile$1;->val$raf:Ljava/io/RandomAccessFile; │ │ invoke-direct {p0}, Ljava/io/OutputStream;->()V │ │ return-void │ @@ -44,15 +45,15 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 193 │ - .local p0, "this":Lorg/primftpd/filesystem/AndroidFile$1;, "Lorg/primftpd/filesystem/AndroidFile.1;" │ + .local p0, "this":Lorg/primftpd/filesystem/AndroidFile$1;, "Lorg/primftpd/filesystem/AndroidFile$1;" │ iget-object v0, p0, Lorg/primftpd/filesystem/AndroidFile$1;->val$raf:Ljava/io/RandomAccessFile; │ │ invoke-virtual {v0}, Ljava/io/RandomAccessFile;->close()V │ │ .line 194 │ return-void │ .end method │ @@ -64,15 +65,15 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 189 │ - .local p0, "this":Lorg/primftpd/filesystem/AndroidFile$1;, "Lorg/primftpd/filesystem/AndroidFile.1;" │ + .local p0, "this":Lorg/primftpd/filesystem/AndroidFile$1;, "Lorg/primftpd/filesystem/AndroidFile$1;" │ iget-object v0, p0, Lorg/primftpd/filesystem/AndroidFile$1;->val$raf:Ljava/io/RandomAccessFile; │ │ invoke-virtual {v0, p1}, Ljava/io/RandomAccessFile;->write(I)V │ │ .line 190 │ return-void │ .end method ├── smali/org/primftpd/filesystem/AndroidFile.smali │ @@ -276,22 +276,25 @@ │ .local v0, "exists":Z │ iget-object v1, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ │ const-string v2, "doesExist(), ({}): {}" │ │ iget-object v3, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 68 │ invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 69 │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v4 │ │ + .line 66 │ invoke-interface {v1, v2, v3, v4}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 70 │ return v0 │ .end method │ │ .method public getAbsolutePath()Ljava/lang/String; │ @@ -439,22 +442,25 @@ │ .local v0, "isDirectory":Z │ iget-object v1, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ │ const-string v2, "isDirectory(), ({}): {}" │ │ iget-object v3, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 50 │ invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 51 │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v4 │ │ + .line 48 │ invoke-interface {v1, v2, v3, v4}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 52 │ return v0 │ .end method │ │ .method public isFile()Z │ @@ -473,22 +479,25 @@ │ .local v0, "isFile":Z │ iget-object v1, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ │ const-string v2, "isFile(), ({}): {}" │ │ iget-object v3, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 59 │ invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 60 │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v4 │ │ + .line 57 │ invoke-interface {v1, v2, v3, v4}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 61 │ return v0 │ .end method │ │ .method public isHidden()Z │ @@ -529,22 +538,25 @@ │ .local v0, "canRead":Z │ iget-object v1, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ │ const-string v2, "isReadable(), ({}): {}" │ │ iget-object v3, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 77 │ invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 78 │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v4 │ │ + .line 75 │ invoke-interface {v1, v2, v3, v4}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 79 │ return v0 │ .end method │ │ .method public isRemovable()Z │ @@ -583,48 +595,52 @@ │ │ const/4 v4, 0x3 │ │ new-array v4, v4, [Ljava/lang/Object; │ │ iget-object v5, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 86 │ invoke-virtual {v5}, Ljava/io/File;->canWrite()Z │ │ move-result v5 │ │ invoke-static {v5}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v5 │ │ aput-object v5, v4, v1 │ │ const/4 v5, 0x1 │ │ iget-object v6, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 87 │ invoke-virtual {v6}, Ljava/io/File;->exists()Z │ │ move-result v6 │ │ invoke-static {v6}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x2 │ │ iget-object v6, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ + .line 88 │ invoke-virtual {v6}, Ljava/io/File;->getName()Ljava/lang/String; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ + .line 83 │ invoke-interface {v2, v3, v4}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;[Ljava/lang/Object;)V │ │ .line 91 │ iget-object v2, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ invoke-virtual {v2}, Ljava/io/File;->exists()Z │ │ @@ -677,107 +693,97 @@ │ │ move-result-object v0 │ │ goto :goto_1 │ .end method │ │ .method public listFiles()Ljava/util/List; │ - .locals 9 │ + .locals 7 │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "()", │ "Ljava/util/List", │ ";" │ } │ .end annotation │ │ .prologue │ - .line 152 │ .local p0, "this":Lorg/primftpd/filesystem/AndroidFile;, "Lorg/primftpd/filesystem/AndroidFile;" │ - iget-object v6, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ + const/4 v3, 0x0 │ + │ + .line 152 │ + iget-object v4, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ │ - const-string v7, "listFiles()" │ + const-string v5, "listFiles()" │ │ - invoke-interface {v6, v7}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;)V │ + invoke-interface {v4, v5}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;)V │ │ .line 153 │ - iget-object v6, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ + iget-object v4, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ - invoke-virtual {v6}, Ljava/io/File;->listFiles()[Ljava/io/File; │ + invoke-virtual {v4}, Ljava/io/File;->listFiles()[Ljava/io/File; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 154 │ - .local v3, "filesArray":[Ljava/io/File; │ - if-eqz v3, :cond_0 │ + .local v2, "filesArray":[Ljava/io/File; │ + if-eqz v2, :cond_0 │ │ .line 155 │ - new-instance v2, Ljava/util/ArrayList; │ + new-instance v1, Ljava/util/ArrayList; │ │ - array-length v6, v3 │ + array-length v4, v2 │ │ - invoke-direct {v2, v6}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v1, v4}, Ljava/util/ArrayList;->(I)V │ │ .line 156 │ - .local v2, "files":Ljava/util/List;, "Ljava/util/List;" │ - move-object v0, v3 │ - │ - .local v0, "arr$":[Ljava/io/File; │ - array-length v5, v0 │ + .local v1, "files":Ljava/util/List;, "Ljava/util/List;" │ + array-length v4, v2 │ │ - .local v5, "len$":I │ - const/4 v4, 0x0 │ - │ - .local v4, "i$":I │ :goto_0 │ - if-ge v4, v5, :cond_1 │ + if-ge v3, v4, :cond_1 │ │ - aget-object v1, v0, v4 │ + aget-object v0, v2, v3 │ │ .line 157 │ - .local v1, "file":Ljava/io/File; │ - invoke-virtual {p0, v1}, Lorg/primftpd/filesystem/AndroidFile;->createFile(Ljava/io/File;)Ljava/lang/Object; │ + .local v0, "file":Ljava/io/File; │ + invoke-virtual {p0, v0}, Lorg/primftpd/filesystem/AndroidFile;->createFile(Ljava/io/File;)Ljava/lang/Object; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-interface {v2, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ + invoke-interface {v1, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z │ │ .line 156 │ - add-int/lit8 v4, v4, 0x1 │ + add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 161 │ - .end local v0 # "arr$":[Ljava/io/File; │ - .end local v1 # "file":Ljava/io/File; │ - .end local v2 # "files":Ljava/util/List;, "Ljava/util/List;" │ - .end local v4 # "i$":I │ - .end local v5 # "len$":I │ + .end local v0 # "file":Ljava/io/File; │ + .end local v1 # "files":Ljava/util/List;, "Ljava/util/List;" │ :cond_0 │ - iget-object v6, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ + iget-object v4, p0, Lorg/primftpd/filesystem/AndroidFile;->logger:Lorg/slf4j/Logger; │ │ - const-string v7, "file.listFiles() returned null. Path: {}" │ + const-string v5, "file.listFiles() returned null. Path: {}" │ │ - iget-object v8, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ + iget-object v6, p0, Lorg/primftpd/filesystem/AndroidFile;->file:Ljava/io/File; │ │ - invoke-virtual {v8}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ + invoke-virtual {v6}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ - move-result-object v8 │ + move-result-object v6 │ │ - invoke-interface {v6, v7, v8}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;)V │ + invoke-interface {v4, v5, v6}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;)V │ │ .line 162 │ - new-instance v2, Ljava/util/ArrayList; │ - │ - const/4 v6, 0x0 │ + new-instance v1, Ljava/util/ArrayList; │ │ - invoke-direct {v2, v6}, Ljava/util/ArrayList;->(I)V │ + invoke-direct {v1, v3}, Ljava/util/ArrayList;->(I)V │ │ :cond_1 │ - return-object v2 │ + return-object v1 │ .end method │ │ .method public mkdir()Z │ .locals 2 │ │ .prologue │ .line 136 ├── smali/org/primftpd/filesystem/SshFile.smali │ @@ -3,20 +3,14 @@ │ .source "SshFile.java" │ │ # interfaces │ .implements Lorg/apache/sshd/common/file/SshFile; │ │ │ # annotations │ -.annotation system Ldalvik/annotation/MemberClasses; │ - value = { │ - Lorg/primftpd/filesystem/SshFile$1; │ - } │ -.end annotation │ - │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "Lorg/primftpd/filesystem/AndroidFile", │ "<", │ "Lorg/apache/sshd/common/file/SshFile;", │ ">;", │ "Lorg/apache/sshd/common/file/SshFile;" │ @@ -402,23 +396,26 @@ │ │ move-result v10 │ │ if-eqz v10, :cond_5 │ │ const-class v10, Lorg/apache/sshd/common/file/SshFile$Permission; │ │ + .line 103 │ invoke-static {v10}, Ljava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet; │ │ move-result-object v10 │ │ :goto_2 │ move-object v6, v10 │ │ + .line 102 │ goto/16 :goto_0 │ │ + .line 104 │ :cond_5 │ invoke-static {v8}, Ljava/util/EnumSet;->copyOf(Ljava/util/Collection;)Ljava/util/EnumSet; │ │ move-result-object v10 │ │ goto :goto_2 │ │ @@ -479,15 +476,15 @@ │ :pswitch_9 │ :pswitch_a │ :pswitch_b │ .end packed-switch │ .end method │ │ .method public getAttributes(Z)Ljava/util/Map; │ - .locals 7 │ + .locals 6 │ .param p1, "followLinks" # Z │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(Z)", │ "Ljava/util/Map", │ "<", │ "Lorg/apache/sshd/common/file/SshFile$Attribute;", │ @@ -500,60 +497,57 @@ │ value = { │ Ljava/io/IOException; │ } │ .end annotation │ │ .prologue │ .line 122 │ - iget-object v5, p0, Lorg/primftpd/filesystem/SshFile;->logger:Lorg/slf4j/Logger; │ + iget-object v2, p0, Lorg/primftpd/filesystem/SshFile;->logger:Lorg/slf4j/Logger; │ │ - const-string v6, "getAttributes()" │ + const-string v3, "getAttributes()" │ │ - invoke-interface {v5, v6}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;)V │ + invoke-interface {v2, v3}, Lorg/slf4j/Logger;->trace(Ljava/lang/String;)V │ │ .line 124 │ - new-instance v2, Ljava/util/HashMap; │ + new-instance v1, Ljava/util/HashMap; │ │ - invoke-direct {v2}, Ljava/util/HashMap;->()V │ + invoke-direct {v1}, Ljava/util/HashMap;->()V │ │ .line 126 │ - .local v2, "attributes":Ljava/util/Map;, "Ljava/util/Map;" │ + .local v1, "attributes":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-static {}, Lorg/apache/sshd/common/file/SshFile$Attribute;->values()[Lorg/apache/sshd/common/file/SshFile$Attribute; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[Lorg/apache/sshd/common/file/SshFile$Attribute; │ - array-length v4, v0 │ + array-length v4, v3 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ + const/4 v2, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v1, v0, v3 │ + aget-object v0, v3, v2 │ │ .line 127 │ - .local v1, "attr":Lorg/apache/sshd/common/file/SshFile$Attribute; │ - invoke-virtual {p0, v1, p1}, Lorg/primftpd/filesystem/SshFile;->getAttribute(Lorg/apache/sshd/common/file/SshFile$Attribute;Z)Ljava/lang/Object; │ + .local v0, "attr":Lorg/apache/sshd/common/file/SshFile$Attribute; │ + invoke-virtual {p0, v0, p1}, Lorg/primftpd/filesystem/SshFile;->getAttribute(Lorg/apache/sshd/common/file/SshFile$Attribute;Z)Ljava/lang/Object; │ │ move-result-object v5 │ │ - invoke-interface {v2, v1, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v1, v0, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 126 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 130 │ - .end local v1 # "attr":Lorg/apache/sshd/common/file/SshFile$Attribute; │ + .end local v0 # "attr":Lorg/apache/sshd/common/file/SshFile$Attribute; │ :cond_0 │ - return-object v2 │ + return-object v1 │ .end method │ │ .method public getOwner()Ljava/lang/String; │ .locals 2 │ │ .prologue │ .line 136 ├── smali/org/primftpd/log/PrimFtpdLoggerBinder.smali │ @@ -2,22 +2,14 @@ │ .super Ljava/lang/Object; │ .source "PrimFtpdLoggerBinder.java" │ │ # interfaces │ .implements Lorg/slf4j/spi/LoggerFactoryBinder; │ │ │ -# annotations │ -.annotation system Ldalvik/annotation/MemberClasses; │ - value = { │ - Lorg/primftpd/log/PrimFtpdLoggerBinder$1; │ - } │ -.end annotation │ - │ - │ # static fields │ .field public static REQUESTED_API_VERSION:Ljava/lang/String; │ │ .field private static final SINGLETON:Lorg/primftpd/log/PrimFtpdLoggerBinder; │ │ .field private static loggingPref:Lorg/primftpd/prefs/Logging; ├── smali/org/primftpd/log/CsvLogger.smali │ @@ -97,133 +97,128 @@ │ │ move-result-object v0 │ │ return-object v0 │ .end method │ │ .method private printThrowable(Ljava/lang/StringBuilder;Ljava/lang/Throwable;)V │ - .locals 7 │ + .locals 6 │ .param p1, "sb" # Ljava/lang/StringBuilder; │ .param p2, "t" # Ljava/lang/Throwable; │ │ .prologue │ .line 65 │ invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {v6}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 66 │ - const-string v6, ": " │ + const-string v3, ": " │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 67 │ invoke-virtual {p2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v3 │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 68 │ invoke-virtual {p2}, Ljava/lang/Throwable;->getStackTrace()[Ljava/lang/StackTraceElement; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 69 │ - .local v5, "stackTrace":[Ljava/lang/StackTraceElement; │ - move-object v0, v5 │ - │ - .local v0, "arr$":[Ljava/lang/StackTraceElement; │ - array-length v4, v0 │ + .local v2, "stackTrace":[Ljava/lang/StackTraceElement; │ + array-length v4, v2 │ │ - .local v4, "len$":I │ const/4 v3, 0x0 │ │ - .local v3, "i$":I │ :goto_0 │ if-ge v3, v4, :cond_0 │ │ - aget-object v2, v0, v3 │ + aget-object v1, v2, v3 │ │ .line 70 │ - .local v2, "elem":Ljava/lang/StackTraceElement; │ - const-string v6, "\n\t" │ + .local v1, "elem":Ljava/lang/StackTraceElement; │ + const-string v5, "\n\t" │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 71 │ - invoke-virtual {v2}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getClassName()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 72 │ - const-string v6, "." │ + const-string v5, "." │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 73 │ - invoke-virtual {v2}, Ljava/lang/StackTraceElement;->getMethodName()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getMethodName()Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 74 │ - const-string v6, "() line: " │ + const-string v5, "() line: " │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 75 │ - invoke-virtual {v2}, Ljava/lang/StackTraceElement;->getLineNumber()I │ + invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getLineNumber()I │ │ - move-result v6 │ + move-result v5 │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; │ │ .line 69 │ add-int/lit8 v3, v3, 0x1 │ │ goto :goto_0 │ │ .line 77 │ - .end local v2 # "elem":Ljava/lang/StackTraceElement; │ + .end local v1 # "elem":Ljava/lang/StackTraceElement; │ :cond_0 │ invoke-virtual {p2}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable; │ │ - move-result-object v1 │ + move-result-object v0 │ │ .line 78 │ - .local v1, "cause":Ljava/lang/Throwable; │ - if-eqz v1, :cond_1 │ + .local v0, "cause":Ljava/lang/Throwable; │ + if-eqz v0, :cond_1 │ │ .line 79 │ - const-string v6, "\n" │ + const-string v3, "\n" │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 80 │ - const-string v6, "Caused by:" │ + const-string v3, "Caused by:" │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 81 │ - const-string v6, " " │ + const-string v3, " " │ │ - invoke-virtual {p1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {p1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ .line 82 │ - invoke-direct {p0, p1, v1}, Lorg/primftpd/log/CsvLogger;->printThrowable(Ljava/lang/StringBuilder;Ljava/lang/Throwable;)V │ + invoke-direct {p0, p1, v0}, Lorg/primftpd/log/CsvLogger;->printThrowable(Ljava/lang/StringBuilder;Ljava/lang/Throwable;)V │ │ .line 84 │ :cond_1 │ return-void │ .end method │ │ .method private writeLine(Lorg/primftpd/log/CsvLogger$LogLevel;Ljava/lang/String;)V ├── smali/org/primftpd/prefs/EncryptingEditTextPreference.smali │ @@ -89,26 +89,28 @@ │ │ .prologue │ .line 61 │ if-eqz p1, :cond_0 │ │ const/4 v0, 0x0 │ │ + .line 62 │ invoke-virtual {p0, v0}, Lorg/primftpd/prefs/EncryptingEditTextPreference;->getPersistedString(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object p2 │ │ + .line 61 │ .end local p2 # "defaultValue":Ljava/lang/Object; │ :goto_0 │ invoke-super {p0, p2}, Landroid/preference/EditTextPreference;->setText(Ljava/lang/String;)V │ │ .line 64 │ return-void │ │ - .line 61 │ + .line 62 │ .restart local p2 # "defaultValue":Ljava/lang/Object; │ :cond_0 │ check-cast p2, Ljava/lang/String; │ │ goto :goto_0 │ .end method ├── smali/org/primftpd/prefs/FtpPrefsActivity.smali │ @@ -39,14 +39,15 @@ │ │ invoke-direct {v2}, Lorg/primftpd/prefs/FtpPrefsFragment;->()V │ │ invoke-virtual {v0, v1, v2}, Landroid/app/FragmentTransaction;->replace(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction; │ │ move-result-object v0 │ │ + .line 19 │ invoke-virtual {v0}, Landroid/app/FragmentTransaction;->commit()I │ │ .line 23 │ invoke-virtual {p0}, Lorg/primftpd/prefs/FtpPrefsActivity;->getActionBar()Landroid/app/ActionBar; │ │ move-result-object v0 ├── smali/org/primftpd/prefs/LoadPrefsUtil.smali │ @@ -52,20 +52,22 @@ │ move-result-object v0 │ │ sput-object v0, Lorg/primftpd/prefs/LoadPrefsUtil;->PORT_DEFAULT_VAL_STR:Ljava/lang/String; │ │ .line 32 │ const/16 v0, 0x4d2 │ │ + .line 33 │ invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/primftpd/prefs/LoadPrefsUtil;->SECURE_PORT_DEFAULT_VAL_STR:Ljava/lang/String; │ │ + .line 32 │ return-void │ .end method │ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ @@ -81,18 +83,20 @@ │ │ .prologue │ .line 69 │ const-string v0, "announcePref" │ │ sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; │ │ + .line 71 │ invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z │ │ move-result v1 │ │ + .line 69 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 │ @@ -106,18 +110,20 @@ │ │ .prologue │ .line 43 │ const-string v0, "anonymousLoginPref" │ │ sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; │ │ + .line 45 │ invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z │ │ move-result v1 │ │ + .line 43 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 │ @@ -413,18 +419,20 @@ │ │ .prologue │ .line 87 │ const-string v0, "pubKeyAuthPref" │ │ sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; │ │ + .line 89 │ invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z │ │ move-result v1 │ │ + .line 87 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 │ @@ -438,18 +446,20 @@ │ │ .prologue │ .line 93 │ const-string v1, "whichServerToStartPref" │ │ sget-object v2, Lorg/primftpd/prefs/ServerToStart;->ALL:Lorg/primftpd/prefs/ServerToStart; │ │ + .line 95 │ invoke-virtual {v2}, Lorg/primftpd/prefs/ServerToStart;->xmlValue()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 93 │ invoke-interface {p0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 96 │ .local v0, "whichServerStr":Ljava/lang/String; │ invoke-static {v0}, Lorg/primftpd/prefs/ServerToStart;->byXmlVal(Ljava/lang/String;)Lorg/primftpd/prefs/ServerToStart; │ @@ -496,18 +506,20 @@ │ │ .prologue │ .line 81 │ const-string v0, "startOnBootPref" │ │ sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; │ │ + .line 83 │ invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z │ │ move-result v1 │ │ + .line 81 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 │ @@ -521,18 +533,20 @@ │ │ .prologue │ .line 100 │ const-string v1, "themePref" │ │ sget-object v2, Lorg/primftpd/prefs/Theme;->DARK:Lorg/primftpd/prefs/Theme; │ │ + .line 102 │ invoke-virtual {v2}, Lorg/primftpd/prefs/Theme;->xmlValue()Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 100 │ invoke-interface {p0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v0 │ │ .line 103 │ .local v0, "themeStr":Ljava/lang/String; │ invoke-static {v0}, Lorg/primftpd/prefs/Theme;->byXmlVal(Ljava/lang/String;)Lorg/primftpd/prefs/Theme; │ @@ -590,18 +604,20 @@ │ │ .prologue │ .line 75 │ const-string v0, "wakelockPref" │ │ sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; │ │ + .line 77 │ invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z │ │ move-result v1 │ │ + .line 75 │ invoke-interface {p0, v0, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v0 ├── smali/org/primftpd/prefs/Logging.smali │ @@ -38,117 +38,112 @@ │ │ # instance fields │ .field private final xmlValue:Ljava/lang/String; │ │ │ # direct methods │ .method static constructor ()V │ - .locals 11 │ + .locals 8 │ │ .prologue │ - const/4 v10, 0x2 │ + const/4 v7, 0x2 │ │ - const/4 v9, 0x1 │ + const/4 v6, 0x1 │ │ - const/4 v8, 0x0 │ + const/4 v2, 0x0 │ │ .line 9 │ - new-instance v5, Lorg/primftpd/prefs/Logging; │ + new-instance v3, Lorg/primftpd/prefs/Logging; │ │ - const-string v6, "TEXT" │ + const-string v4, "TEXT" │ │ - const-string v7, "1" │ + const-string v5, "1" │ │ - invoke-direct {v5, v6, v8, v7}, Lorg/primftpd/prefs/Logging;->(Ljava/lang/String;ILjava/lang/String;)V │ + invoke-direct {v3, v4, v2, v5}, Lorg/primftpd/prefs/Logging;->(Ljava/lang/String;ILjava/lang/String;)V │ │ - sput-object v5, Lorg/primftpd/prefs/Logging;->TEXT:Lorg/primftpd/prefs/Logging; │ + sput-object v3, Lorg/primftpd/prefs/Logging;->TEXT:Lorg/primftpd/prefs/Logging; │ │ .line 10 │ - new-instance v5, Lorg/primftpd/prefs/Logging; │ + new-instance v3, Lorg/primftpd/prefs/Logging; │ │ - const-string v6, "ANDROID" │ + const-string v4, "ANDROID" │ │ - const-string v7, "2" │ + const-string v5, "2" │ │ - invoke-direct {v5, v6, v9, v7}, Lorg/primftpd/prefs/Logging;->(Ljava/lang/String;ILjava/lang/String;)V │ + invoke-direct {v3, v4, v6, v5}, Lorg/primftpd/prefs/Logging;->(Ljava/lang/String;ILjava/lang/String;)V │ │ - sput-object v5, Lorg/primftpd/prefs/Logging;->ANDROID:Lorg/primftpd/prefs/Logging; │ + sput-object v3, Lorg/primftpd/prefs/Logging;->ANDROID:Lorg/primftpd/prefs/Logging; │ │ .line 11 │ - new-instance v5, Lorg/primftpd/prefs/Logging; │ + new-instance v3, Lorg/primftpd/prefs/Logging; │ │ - const-string v6, "NONE" │ + const-string v4, "NONE" │ │ - const-string v7, "0" │ + const-string v5, "0" │ │ - invoke-direct {v5, v6, v10, v7}, Lorg/primftpd/prefs/Logging;->(Ljava/lang/String;ILjava/lang/String;)V │ + invoke-direct {v3, v4, v7, v5}, Lorg/primftpd/prefs/Logging;->(Ljava/lang/String;ILjava/lang/String;)V │ │ - sput-object v5, Lorg/primftpd/prefs/Logging;->NONE:Lorg/primftpd/prefs/Logging; │ + sput-object v3, Lorg/primftpd/prefs/Logging;->NONE:Lorg/primftpd/prefs/Logging; │ │ .line 7 │ - const/4 v5, 0x3 │ + const/4 v3, 0x3 │ │ - new-array v5, v5, [Lorg/primftpd/prefs/Logging; │ + new-array v3, v3, [Lorg/primftpd/prefs/Logging; │ │ - sget-object v6, Lorg/primftpd/prefs/Logging;->TEXT:Lorg/primftpd/prefs/Logging; │ + sget-object v4, Lorg/primftpd/prefs/Logging;->TEXT:Lorg/primftpd/prefs/Logging; │ │ - aput-object v6, v5, v8 │ + aput-object v4, v3, v2 │ │ - sget-object v6, Lorg/primftpd/prefs/Logging;->ANDROID:Lorg/primftpd/prefs/Logging; │ + sget-object v4, Lorg/primftpd/prefs/Logging;->ANDROID:Lorg/primftpd/prefs/Logging; │ │ - aput-object v6, v5, v9 │ + aput-object v4, v3, v6 │ │ - sget-object v6, Lorg/primftpd/prefs/Logging;->NONE:Lorg/primftpd/prefs/Logging; │ + sget-object v4, Lorg/primftpd/prefs/Logging;->NONE:Lorg/primftpd/prefs/Logging; │ │ - aput-object v6, v5, v10 │ + aput-object v4, v3, v7 │ │ - sput-object v5, Lorg/primftpd/prefs/Logging;->$VALUES:[Lorg/primftpd/prefs/Logging; │ + sput-object v3, Lorg/primftpd/prefs/Logging;->$VALUES:[Lorg/primftpd/prefs/Logging; │ │ .line 23 │ - new-instance v4, Ljava/util/HashMap; │ + new-instance v1, Ljava/util/HashMap; │ │ - invoke-direct {v4}, Ljava/util/HashMap;->()V │ + invoke-direct {v1}, Ljava/util/HashMap;->()V │ │ .line 24 │ - .local v4, "tmp":Ljava/util/Map;, "Ljava/util/Map;" │ + .local v1, "tmp":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-static {}, Lorg/primftpd/prefs/Logging;->values()[Lorg/primftpd/prefs/Logging; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[Lorg/primftpd/prefs/Logging; │ - array-length v2, v0 │ + array-length v4, v3 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ - │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v3, v0, v1 │ + aget-object v0, v3, v2 │ │ .line 25 │ - .local v3, "srvToStart":Lorg/primftpd/prefs/Logging; │ - iget-object v5, v3, Lorg/primftpd/prefs/Logging;->xmlValue:Ljava/lang/String; │ + .local v0, "srvToStart":Lorg/primftpd/prefs/Logging; │ + iget-object v5, v0, Lorg/primftpd/prefs/Logging;->xmlValue:Ljava/lang/String; │ │ - invoke-interface {v4, v5, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v1, v5, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 24 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 27 │ - .end local v3 # "srvToStart":Lorg/primftpd/prefs/Logging; │ + .end local v0 # "srvToStart":Lorg/primftpd/prefs/Logging; │ :cond_0 │ - invoke-static {v4}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ + invoke-static {v1}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ │ - move-result-object v5 │ + move-result-object v2 │ │ - sput-object v5, Lorg/primftpd/prefs/Logging;->XML_TO_ENUM:Ljava/util/Map; │ + sput-object v2, Lorg/primftpd/prefs/Logging;->XML_TO_ENUM:Ljava/util/Map; │ │ .line 28 │ return-void │ .end method │ │ .method private constructor (Ljava/lang/String;ILjava/lang/String;)V │ .locals 0 ├── smali/org/primftpd/prefs/PortEditTextPreference.smali │ @@ -81,25 +81,27 @@ │ │ move-result v6 │ │ .line 33 │ .local v6, "valid":Z │ if-nez v6, :cond_1 │ │ - .line 34 │ + .line 35 │ invoke-virtual {p0}, Lorg/primftpd/prefs/PortEditTextPreference;->getContext()Landroid/content/Context; │ │ move-result-object v7 │ │ const v8, 0x7f06000f │ │ + .line 34 │ invoke-static {v7, v8, v9}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v7 │ │ + .line 37 │ invoke-virtual {v7}, Landroid/widget/Toast;->show()V │ │ .line 65 │ :cond_0 │ :goto_0 │ return v6 │ │ @@ -137,51 +139,55 @@ │ .line 47 │ .local v0, "otherDefaultVal":I │ :goto_2 │ if-ne v7, v0, :cond_4 │ │ sget-object v1, Lorg/primftpd/prefs/LoadPrefsUtil;->PORT_DEFAULT_VAL_STR:Ljava/lang/String; │ │ - .line 50 │ + .line 51 │ .local v1, "otherDefaultValStr":Ljava/lang/String; │ :goto_3 │ invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v7 │ │ invoke-static {v7}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger; │ │ move-result-object v7 │ │ + .line 52 │ invoke-virtual {p1}, Landroid/preference/Preference;->getSharedPreferences()Landroid/content/SharedPreferences; │ │ move-result-object v8 │ │ + .line 50 │ invoke-static {v7, v8, v2, v0, v1}, Lorg/primftpd/prefs/LoadPrefsUtil;->loadPort(Lorg/slf4j/Logger;Landroid/content/SharedPreferences;Ljava/lang/String;ILjava/lang/String;)I │ │ move-result v3 │ │ .line 57 │ .local v3, "otherVal":I │ if-ne v4, v3, :cond_0 │ │ .line 58 │ const/4 v6, 0x0 │ │ - .line 59 │ + .line 60 │ invoke-virtual {p0}, Lorg/primftpd/prefs/PortEditTextPreference;->getContext()Landroid/content/Context; │ │ move-result-object v7 │ │ const v8, 0x7f060011 │ │ + .line 59 │ invoke-static {v7, v8, v9}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v7 │ │ + .line 62 │ invoke-virtual {v7}, Landroid/widget/Toast;->show()V │ │ goto :goto_0 │ │ .line 41 │ .end local v0 # "otherDefaultVal":I │ .end local v1 # "otherDefaultValStr":Ljava/lang/String; ├── smali/org/primftpd/prefs/ServerToStart$1.smali │ @@ -13,15 +13,15 @@ │ name = null │ .end annotation │ │ │ # direct methods │ .method constructor (Ljava/lang/String;ILjava/lang/String;)V │ .locals 1 │ - .param p3, "x0" # Ljava/lang/String; │ + .param p3, "xmlValue" # Ljava/lang/String; │ │ .prologue │ .line 11 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, p3, v0}, Lorg/primftpd/prefs/ServerToStart;->(Ljava/lang/String;ILjava/lang/String;Lorg/primftpd/prefs/ServerToStart$1;)V ├── smali/org/primftpd/prefs/ServerToStart$2.smali │ @@ -13,15 +13,15 @@ │ name = null │ .end annotation │ │ │ # direct methods │ .method constructor (Ljava/lang/String;ILjava/lang/String;)V │ .locals 1 │ - .param p3, "x0" # Ljava/lang/String; │ + .param p3, "xmlValue" # Ljava/lang/String; │ │ .prologue │ .line 25 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, p3, v0}, Lorg/primftpd/prefs/ServerToStart;->(Ljava/lang/String;ILjava/lang/String;Lorg/primftpd/prefs/ServerToStart$1;)V ├── smali/org/primftpd/prefs/ServerToStart$3.smali │ @@ -13,15 +13,15 @@ │ name = null │ .end annotation │ │ │ # direct methods │ .method constructor (Ljava/lang/String;ILjava/lang/String;)V │ .locals 1 │ - .param p3, "x0" # Ljava/lang/String; │ + .param p3, "xmlValue" # Ljava/lang/String; │ │ .prologue │ .line 39 │ const/4 v0, 0x0 │ │ invoke-direct {p0, p1, p2, p3, v0}, Lorg/primftpd/prefs/ServerToStart;->(Ljava/lang/String;ILjava/lang/String;Lorg/primftpd/prefs/ServerToStart$1;)V ├── smali/org/primftpd/prefs/ServerToStart.smali │ @@ -38,117 +38,112 @@ │ │ # instance fields │ .field private final xmlValue:Ljava/lang/String; │ │ │ # direct methods │ .method static constructor ()V │ - .locals 11 │ + .locals 8 │ │ .prologue │ - const/4 v10, 0x2 │ + const/4 v7, 0x2 │ │ - const/4 v9, 0x1 │ + const/4 v6, 0x1 │ │ - const/4 v8, 0x0 │ + const/4 v2, 0x0 │ │ .line 11 │ - new-instance v5, Lorg/primftpd/prefs/ServerToStart$1; │ + new-instance v3, Lorg/primftpd/prefs/ServerToStart$1; │ │ - const-string v6, "FTP" │ + const-string v4, "FTP" │ │ - const-string v7, "1" │ + const-string v5, "1" │ │ - invoke-direct {v5, v6, v8, v7}, Lorg/primftpd/prefs/ServerToStart$1;->(Ljava/lang/String;ILjava/lang/String;)V │ + invoke-direct {v3, v4, v2, v5}, Lorg/primftpd/prefs/ServerToStart$1;->(Ljava/lang/String;ILjava/lang/String;)V │ │ - sput-object v5, Lorg/primftpd/prefs/ServerToStart;->FTP:Lorg/primftpd/prefs/ServerToStart; │ + sput-object v3, Lorg/primftpd/prefs/ServerToStart;->FTP:Lorg/primftpd/prefs/ServerToStart; │ │ .line 25 │ - new-instance v5, Lorg/primftpd/prefs/ServerToStart$2; │ + new-instance v3, Lorg/primftpd/prefs/ServerToStart$2; │ │ - const-string v6, "SFTP" │ + const-string v4, "SFTP" │ │ - const-string v7, "2" │ + const-string v5, "2" │ │ - invoke-direct {v5, v6, v9, v7}, Lorg/primftpd/prefs/ServerToStart$2;->(Ljava/lang/String;ILjava/lang/String;)V │ + invoke-direct {v3, v4, v6, v5}, Lorg/primftpd/prefs/ServerToStart$2;->(Ljava/lang/String;ILjava/lang/String;)V │ │ - sput-object v5, Lorg/primftpd/prefs/ServerToStart;->SFTP:Lorg/primftpd/prefs/ServerToStart; │ + sput-object v3, Lorg/primftpd/prefs/ServerToStart;->SFTP:Lorg/primftpd/prefs/ServerToStart; │ │ .line 39 │ - new-instance v5, Lorg/primftpd/prefs/ServerToStart$3; │ + new-instance v3, Lorg/primftpd/prefs/ServerToStart$3; │ │ - const-string v6, "ALL" │ + const-string v4, "ALL" │ │ - const-string v7, "0" │ + const-string v5, "0" │ │ - invoke-direct {v5, v6, v10, v7}, Lorg/primftpd/prefs/ServerToStart$3;->(Ljava/lang/String;ILjava/lang/String;)V │ + invoke-direct {v3, v4, v7, v5}, Lorg/primftpd/prefs/ServerToStart$3;->(Ljava/lang/String;ILjava/lang/String;)V │ │ - sput-object v5, Lorg/primftpd/prefs/ServerToStart;->ALL:Lorg/primftpd/prefs/ServerToStart; │ + sput-object v3, Lorg/primftpd/prefs/ServerToStart;->ALL:Lorg/primftpd/prefs/ServerToStart; │ │ .line 9 │ - const/4 v5, 0x3 │ + const/4 v3, 0x3 │ │ - new-array v5, v5, [Lorg/primftpd/prefs/ServerToStart; │ + new-array v3, v3, [Lorg/primftpd/prefs/ServerToStart; │ │ - sget-object v6, Lorg/primftpd/prefs/ServerToStart;->FTP:Lorg/primftpd/prefs/ServerToStart; │ + sget-object v4, Lorg/primftpd/prefs/ServerToStart;->FTP:Lorg/primftpd/prefs/ServerToStart; │ │ - aput-object v6, v5, v8 │ + aput-object v4, v3, v2 │ │ - sget-object v6, Lorg/primftpd/prefs/ServerToStart;->SFTP:Lorg/primftpd/prefs/ServerToStart; │ + sget-object v4, Lorg/primftpd/prefs/ServerToStart;->SFTP:Lorg/primftpd/prefs/ServerToStart; │ │ - aput-object v6, v5, v9 │ + aput-object v4, v3, v6 │ │ - sget-object v6, Lorg/primftpd/prefs/ServerToStart;->ALL:Lorg/primftpd/prefs/ServerToStart; │ + sget-object v4, Lorg/primftpd/prefs/ServerToStart;->ALL:Lorg/primftpd/prefs/ServerToStart; │ │ - aput-object v6, v5, v10 │ + aput-object v4, v3, v7 │ │ - sput-object v5, Lorg/primftpd/prefs/ServerToStart;->$VALUES:[Lorg/primftpd/prefs/ServerToStart; │ + sput-object v3, Lorg/primftpd/prefs/ServerToStart;->$VALUES:[Lorg/primftpd/prefs/ServerToStart; │ │ .line 63 │ - new-instance v4, Ljava/util/HashMap; │ + new-instance v1, Ljava/util/HashMap; │ │ - invoke-direct {v4}, Ljava/util/HashMap;->()V │ + invoke-direct {v1}, Ljava/util/HashMap;->()V │ │ .line 64 │ - .local v4, "tmp":Ljava/util/Map;, "Ljava/util/Map;" │ + .local v1, "tmp":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-static {}, Lorg/primftpd/prefs/ServerToStart;->values()[Lorg/primftpd/prefs/ServerToStart; │ │ - move-result-object v0 │ + move-result-object v3 │ │ - .local v0, "arr$":[Lorg/primftpd/prefs/ServerToStart; │ - array-length v2, v0 │ + array-length v4, v3 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ - │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-object v3, v0, v1 │ + aget-object v0, v3, v2 │ │ .line 65 │ - .local v3, "srvToStart":Lorg/primftpd/prefs/ServerToStart; │ - iget-object v5, v3, Lorg/primftpd/prefs/ServerToStart;->xmlValue:Ljava/lang/String; │ + .local v0, "srvToStart":Lorg/primftpd/prefs/ServerToStart; │ + iget-object v5, v0, Lorg/primftpd/prefs/ServerToStart;->xmlValue:Ljava/lang/String; │ │ - invoke-interface {v4, v5, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v1, v5, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 64 │ - add-int/lit8 v1, v1, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 67 │ - .end local v3 # "srvToStart":Lorg/primftpd/prefs/ServerToStart; │ + .end local v0 # "srvToStart":Lorg/primftpd/prefs/ServerToStart; │ :cond_0 │ - invoke-static {v4}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ + invoke-static {v1}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ │ - move-result-object v5 │ + move-result-object v2 │ │ - sput-object v5, Lorg/primftpd/prefs/ServerToStart;->XML_TO_ENUM:Ljava/util/Map; │ + sput-object v2, Lorg/primftpd/prefs/ServerToStart;->XML_TO_ENUM:Ljava/util/Map; │ │ .line 68 │ return-void │ .end method │ │ .method private constructor (Ljava/lang/String;ILjava/lang/String;)V │ .locals 0 ├── smali/org/primftpd/prefs/StartDirEditTextPreference.smali │ @@ -120,25 +120,27 @@ │ move v1, v2 │ │ .line 56 │ .local v1, "valid":Z │ :goto_0 │ if-nez v1, :cond_0 │ │ - .line 57 │ + .line 58 │ invoke-virtual {p0}, Lorg/primftpd/prefs/StartDirEditTextPreference;->getContext()Landroid/content/Context; │ │ move-result-object v3 │ │ const v4, 0x7f06000a │ │ + .line 57 │ invoke-static {v3, v4, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v2 │ │ + .line 60 │ invoke-virtual {v2}, Landroid/widget/Toast;->show()V │ │ .line 62 │ :cond_0 │ return v1 │ │ .line 55 ├── smali/org/primftpd/prefs/Theme.smali │ @@ -40,18 +40,18 @@ │ .field private final themeName:Ljava/lang/String; │ │ .field private final xmlValue:Ljava/lang/String; │ │ │ # direct methods │ .method static constructor ()V │ - .locals 15 │ + .locals 12 │ │ .prologue │ - const/4 v14, 0x1 │ + const/4 v11, 0x1 │ │ const/4 v2, 0x0 │ │ .line 11 │ new-instance v0, Lorg/primftpd/prefs/Theme; │ │ const-string v1, "DARK" │ @@ -73,15 +73,15 @@ │ │ const-string v6, "1" │ │ const-string v7, "PrimFtpdLightTheme" │ │ const v8, 0x7f070001 │ │ - move v5, v14 │ + move v5, v11 │ │ invoke-direct/range {v3 .. v8}, Lorg/primftpd/prefs/Theme;->(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;I)V │ │ sput-object v3, Lorg/primftpd/prefs/Theme;->LIGHT:Lorg/primftpd/prefs/Theme; │ │ .line 9 │ const/4 v0, 0x2 │ @@ -90,56 +90,51 @@ │ │ sget-object v1, Lorg/primftpd/prefs/Theme;->DARK:Lorg/primftpd/prefs/Theme; │ │ aput-object v1, v0, v2 │ │ sget-object v1, Lorg/primftpd/prefs/Theme;->LIGHT:Lorg/primftpd/prefs/Theme; │ │ - aput-object v1, v0, v14 │ + aput-object v1, v0, v11 │ │ sput-object v0, Lorg/primftpd/prefs/Theme;->$VALUES:[Lorg/primftpd/prefs/Theme; │ │ .line 36 │ - new-instance v13, Ljava/util/HashMap; │ + new-instance v10, Ljava/util/HashMap; │ │ - invoke-direct {v13}, Ljava/util/HashMap;->()V │ + invoke-direct {v10}, Ljava/util/HashMap;->()V │ │ .line 37 │ - .local v13, "tmp":Ljava/util/Map;, "Ljava/util/Map;" │ + .local v10, "tmp":Ljava/util/Map;, "Ljava/util/Map;" │ invoke-static {}, Lorg/primftpd/prefs/Theme;->values()[Lorg/primftpd/prefs/Theme; │ │ - move-result-object v9 │ - │ - .local v9, "arr$":[Lorg/primftpd/prefs/Theme; │ - array-length v11, v9 │ + move-result-object v0 │ │ - .local v11, "len$":I │ - const/4 v10, 0x0 │ + array-length v1, v0 │ │ - .local v10, "i$":I │ :goto_0 │ - if-ge v10, v11, :cond_0 │ + if-ge v2, v1, :cond_0 │ │ - aget-object v12, v9, v10 │ + aget-object v9, v0, v2 │ │ .line 38 │ - .local v12, "theme":Lorg/primftpd/prefs/Theme; │ - iget-object v0, v12, Lorg/primftpd/prefs/Theme;->xmlValue:Ljava/lang/String; │ + .local v9, "theme":Lorg/primftpd/prefs/Theme; │ + iget-object v3, v9, Lorg/primftpd/prefs/Theme;->xmlValue:Ljava/lang/String; │ │ - invoke-interface {v13, v0, v12}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v10, v3, v9}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 37 │ - add-int/lit8 v10, v10, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 40 │ - .end local v12 # "theme":Lorg/primftpd/prefs/Theme; │ + .end local v9 # "theme":Lorg/primftpd/prefs/Theme; │ :cond_0 │ - invoke-static {v13}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ + invoke-static {v10}, Ljava/util/Collections;->unmodifiableMap(Ljava/util/Map;)Ljava/util/Map; │ │ move-result-object v0 │ │ sput-object v0, Lorg/primftpd/prefs/Theme;->XML_TO_ENUM:Ljava/util/Map; │ │ .line 41 │ return-void ├── smali/org/primftpd/remotecontrol/PowerTogglesPlugin.smali │ @@ -76,34 +76,38 @@ │ │ const-string v1, "com.painless.pc.ACTION_STATE_CHANGED" │ │ invoke-direct {v0, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V │ │ const-string v1, "varID" │ │ + .line 86 │ invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; │ │ move-result-object v0 │ │ const-string v1, "android.intent.extra.UID" │ │ + .line 87 │ invoke-virtual {v0, v1, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; │ │ move-result-object v0 │ │ const-string v1, "state" │ │ + .line 88 │ invoke-virtual {v0, v1, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; │ │ move-result-object v0 │ │ + .line 85 │ invoke-virtual {p3, v0}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V │ │ .line 89 │ return-void │ .end method │ │ │ @@ -152,24 +156,27 @@ │ if-eqz v0, :cond_0 │ │ .line 25 │ const-string v0, "state" │ │ const/4 v1, 0x0 │ │ + .line 26 │ invoke-virtual {p2, v0, v1}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z │ │ move-result v0 │ │ const-string v1, "android.intent.extra.UID" │ │ + .line 27 │ invoke-virtual {p2, v1}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 25 │ invoke-virtual {p0, p1, v0, v1}, Lorg/primftpd/remotecontrol/PowerTogglesPlugin;->changeState(Landroid/content/Context;ZLjava/lang/String;)V │ │ .line 29 │ :cond_0 │ return-void │ .end method ├── smali/org/primftpd/remotecontrol/TaskerAction.smali │ @@ -40,120 +40,114 @@ │ .field private final blurb:Ljava/lang/String; │ │ .field private final stringId:I │ │ │ # direct methods │ .method static constructor ()V │ - .locals 11 │ + .locals 8 │ │ .prologue │ - const/4 v10, 0x2 │ + const/4 v7, 0x2 │ │ - const/4 v9, 0x1 │ + const/4 v6, 0x1 │ │ - const/4 v8, 0x0 │ + const/4 v1, 0x0 │ │ .line 9 │ - new-instance v4, Lorg/primftpd/remotecontrol/TaskerAction; │ + new-instance v2, Lorg/primftpd/remotecontrol/TaskerAction; │ │ - const-string v5, "START" │ + const-string v3, "START" │ │ - const v6, 0x7f060033 │ + const v4, 0x7f060033 │ │ - const-string v7, "start server(s)" │ + const-string v5, "start server(s)" │ │ - invoke-direct {v4, v5, v8, v6, v7}, Lorg/primftpd/remotecontrol/TaskerAction;->(Ljava/lang/String;IILjava/lang/String;)V │ + invoke-direct {v2, v3, v1, v4, v5}, Lorg/primftpd/remotecontrol/TaskerAction;->(Ljava/lang/String;IILjava/lang/String;)V │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerAction;->START:Lorg/primftpd/remotecontrol/TaskerAction; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerAction;->START:Lorg/primftpd/remotecontrol/TaskerAction; │ │ .line 10 │ - new-instance v4, Lorg/primftpd/remotecontrol/TaskerAction; │ + new-instance v2, Lorg/primftpd/remotecontrol/TaskerAction; │ │ - const-string v5, "STOP" │ + const-string v3, "STOP" │ │ - const v6, 0x7f060035 │ + const v4, 0x7f060035 │ │ - const-string v7, "stop server(s)" │ + const-string v5, "stop server(s)" │ │ - invoke-direct {v4, v5, v9, v6, v7}, Lorg/primftpd/remotecontrol/TaskerAction;->(Ljava/lang/String;IILjava/lang/String;)V │ + invoke-direct {v2, v3, v6, v4, v5}, Lorg/primftpd/remotecontrol/TaskerAction;->(Ljava/lang/String;IILjava/lang/String;)V │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerAction;->STOP:Lorg/primftpd/remotecontrol/TaskerAction; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerAction;->STOP:Lorg/primftpd/remotecontrol/TaskerAction; │ │ .line 11 │ - new-instance v4, Lorg/primftpd/remotecontrol/TaskerAction; │ + new-instance v2, Lorg/primftpd/remotecontrol/TaskerAction; │ │ - const-string v5, "TOGGLE" │ + const-string v3, "TOGGLE" │ │ - const v6, 0x7f060036 │ + const v4, 0x7f060036 │ │ - const-string v7, "toggle server(s)" │ + const-string v5, "toggle server(s)" │ │ - invoke-direct {v4, v5, v10, v6, v7}, Lorg/primftpd/remotecontrol/TaskerAction;->(Ljava/lang/String;IILjava/lang/String;)V │ + invoke-direct {v2, v3, v7, v4, v5}, Lorg/primftpd/remotecontrol/TaskerAction;->(Ljava/lang/String;IILjava/lang/String;)V │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerAction;->TOGGLE:Lorg/primftpd/remotecontrol/TaskerAction; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerAction;->TOGGLE:Lorg/primftpd/remotecontrol/TaskerAction; │ │ .line 8 │ - const/4 v4, 0x3 │ + const/4 v2, 0x3 │ │ - new-array v4, v4, [Lorg/primftpd/remotecontrol/TaskerAction; │ + new-array v2, v2, [Lorg/primftpd/remotecontrol/TaskerAction; │ │ - sget-object v5, Lorg/primftpd/remotecontrol/TaskerAction;->START:Lorg/primftpd/remotecontrol/TaskerAction; │ + sget-object v3, Lorg/primftpd/remotecontrol/TaskerAction;->START:Lorg/primftpd/remotecontrol/TaskerAction; │ │ - aput-object v5, v4, v8 │ + aput-object v3, v2, v1 │ │ - sget-object v5, Lorg/primftpd/remotecontrol/TaskerAction;->STOP:Lorg/primftpd/remotecontrol/TaskerAction; │ + sget-object v3, Lorg/primftpd/remotecontrol/TaskerAction;->STOP:Lorg/primftpd/remotecontrol/TaskerAction; │ │ - aput-object v5, v4, v9 │ + aput-object v3, v2, v6 │ │ - sget-object v5, Lorg/primftpd/remotecontrol/TaskerAction;->TOGGLE:Lorg/primftpd/remotecontrol/TaskerAction; │ + sget-object v3, Lorg/primftpd/remotecontrol/TaskerAction;->TOGGLE:Lorg/primftpd/remotecontrol/TaskerAction; │ │ - aput-object v5, v4, v10 │ + aput-object v3, v2, v7 │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerAction;->$VALUES:[Lorg/primftpd/remotecontrol/TaskerAction; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerAction;->$VALUES:[Lorg/primftpd/remotecontrol/TaskerAction; │ │ .line 31 │ - new-instance v4, Ljava/util/HashMap; │ + new-instance v2, Ljava/util/HashMap; │ │ - invoke-direct {v4}, Ljava/util/HashMap;->()V │ + invoke-direct {v2}, Ljava/util/HashMap;->()V │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerAction;->BLURB_TO_ACTION:Ljava/util/Map; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerAction;->BLURB_TO_ACTION:Ljava/util/Map; │ │ .line 32 │ invoke-static {}, Lorg/primftpd/remotecontrol/TaskerAction;->values()[Lorg/primftpd/remotecontrol/TaskerAction; │ │ - move-result-object v1 │ + move-result-object v2 │ │ - .local v1, "arr$":[Lorg/primftpd/remotecontrol/TaskerAction; │ - array-length v3, v1 │ + array-length v3, v2 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ - │ - .local v2, "i$":I │ + .local v0, "action":Lorg/primftpd/remotecontrol/TaskerAction; │ :goto_0 │ - if-ge v2, v3, :cond_0 │ + if-ge v1, v3, :cond_0 │ │ - aget-object v0, v1, v2 │ + aget-object v0, v2, v1 │ │ .line 33 │ - .local v0, "action":Lorg/primftpd/remotecontrol/TaskerAction; │ sget-object v4, Lorg/primftpd/remotecontrol/TaskerAction;->BLURB_TO_ACTION:Ljava/util/Map; │ │ iget-object v5, v0, Lorg/primftpd/remotecontrol/TaskerAction;->blurb:Ljava/lang/String; │ │ invoke-interface {v4, v5, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 32 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ .line 35 │ - .end local v0 # "action":Lorg/primftpd/remotecontrol/TaskerAction; │ :cond_0 │ return-void │ .end method │ │ .method private constructor (Ljava/lang/String;IILjava/lang/String;)V │ .locals 0 │ .param p3, "stringId" # I ├── smali/org/primftpd/remotecontrol/TaskerCondition.smali │ @@ -36,82 +36,76 @@ │ .field private final blurb:Ljava/lang/String; │ │ .field private final stringId:I │ │ │ # direct methods │ .method static constructor ()V │ - .locals 9 │ + .locals 6 │ │ .prologue │ - const/4 v8, 0x0 │ + const/4 v1, 0x0 │ │ .line 9 │ - new-instance v4, Lorg/primftpd/remotecontrol/TaskerCondition; │ + new-instance v2, Lorg/primftpd/remotecontrol/TaskerCondition; │ │ - const-string v5, "IS_SERVER_RUNNING" │ + const-string v3, "IS_SERVER_RUNNING" │ │ - const v6, 0x7f06003b │ + const v4, 0x7f06003b │ │ - const-string v7, "server running?" │ + const-string v5, "server running?" │ │ - invoke-direct {v4, v5, v8, v6, v7}, Lorg/primftpd/remotecontrol/TaskerCondition;->(Ljava/lang/String;IILjava/lang/String;)V │ + invoke-direct {v2, v3, v1, v4, v5}, Lorg/primftpd/remotecontrol/TaskerCondition;->(Ljava/lang/String;IILjava/lang/String;)V │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerCondition;->IS_SERVER_RUNNING:Lorg/primftpd/remotecontrol/TaskerCondition; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerCondition;->IS_SERVER_RUNNING:Lorg/primftpd/remotecontrol/TaskerCondition; │ │ .line 8 │ - const/4 v4, 0x1 │ + const/4 v2, 0x1 │ │ - new-array v4, v4, [Lorg/primftpd/remotecontrol/TaskerCondition; │ + new-array v2, v2, [Lorg/primftpd/remotecontrol/TaskerCondition; │ │ - sget-object v5, Lorg/primftpd/remotecontrol/TaskerCondition;->IS_SERVER_RUNNING:Lorg/primftpd/remotecontrol/TaskerCondition; │ + sget-object v3, Lorg/primftpd/remotecontrol/TaskerCondition;->IS_SERVER_RUNNING:Lorg/primftpd/remotecontrol/TaskerCondition; │ │ - aput-object v5, v4, v8 │ + aput-object v3, v2, v1 │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerCondition;->$VALUES:[Lorg/primftpd/remotecontrol/TaskerCondition; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerCondition;->$VALUES:[Lorg/primftpd/remotecontrol/TaskerCondition; │ │ .line 29 │ - new-instance v4, Ljava/util/HashMap; │ + new-instance v2, Ljava/util/HashMap; │ │ - invoke-direct {v4}, Ljava/util/HashMap;->()V │ + invoke-direct {v2}, Ljava/util/HashMap;->()V │ │ - sput-object v4, Lorg/primftpd/remotecontrol/TaskerCondition;->BLURB_TO_CONDITION:Ljava/util/Map; │ + sput-object v2, Lorg/primftpd/remotecontrol/TaskerCondition;->BLURB_TO_CONDITION:Ljava/util/Map; │ │ .line 30 │ invoke-static {}, Lorg/primftpd/remotecontrol/TaskerCondition;->values()[Lorg/primftpd/remotecontrol/TaskerCondition; │ │ - move-result-object v0 │ + move-result-object v2 │ │ - .local v0, "arr$":[Lorg/primftpd/remotecontrol/TaskerCondition; │ - array-length v3, v0 │ + array-length v3, v2 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ - │ - .local v2, "i$":I │ + .local v0, "condition":Lorg/primftpd/remotecontrol/TaskerCondition; │ :goto_0 │ - if-ge v2, v3, :cond_0 │ + if-ge v1, v3, :cond_0 │ │ - aget-object v1, v0, v2 │ + aget-object v0, v2, v1 │ │ .line 31 │ - .local v1, "condition":Lorg/primftpd/remotecontrol/TaskerCondition; │ sget-object v4, Lorg/primftpd/remotecontrol/TaskerCondition;->BLURB_TO_CONDITION:Ljava/util/Map; │ │ - iget-object v5, v1, Lorg/primftpd/remotecontrol/TaskerCondition;->blurb:Ljava/lang/String; │ + iget-object v5, v0, Lorg/primftpd/remotecontrol/TaskerCondition;->blurb:Ljava/lang/String; │ │ - invoke-interface {v4, v5, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ + invoke-interface {v4, v5, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; │ │ .line 30 │ - add-int/lit8 v2, v2, 0x1 │ + add-int/lit8 v1, v1, 0x1 │ │ goto :goto_0 │ │ .line 33 │ - .end local v1 # "condition":Lorg/primftpd/remotecontrol/TaskerCondition; │ :cond_0 │ return-void │ .end method │ │ .method private constructor (Ljava/lang/String;IILjava/lang/String;)V │ .locals 0 │ .param p3, "stringId" # I ├── smali/org/primftpd/remotecontrol/TaskerReceiver.smali │ @@ -1,20 +1,12 @@ │ .class public Lorg/primftpd/remotecontrol/TaskerReceiver; │ .super Landroid/content/BroadcastReceiver; │ .source "TaskerReceiver.java" │ │ │ -# annotations │ -.annotation system Ldalvik/annotation/MemberClasses; │ - value = { │ - Lorg/primftpd/remotecontrol/TaskerReceiver$1; │ - } │ -.end annotation │ - │ - │ # static fields │ .field private static final ACTION_FIRE_SETTING:Ljava/lang/String; = "com.twofortyfouram.locale.intent.action.FIRE_SETTING" │ │ .field private static final ACTION_QUERY_CONDITION:Ljava/lang/String; = "com.twofortyfouram.locale.intent.action.QUERY_CONDITION" │ │ .field private static final ACTION_REQUEST_QUERY:Ljava/lang/String; = "com.twofortyfouram.locale.intent.action.REQUEST_QUERY" │ │ @@ -91,15 +83,14 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 17 │ invoke-direct {p0}, Landroid/content/BroadcastReceiver;->()V │ │ - .line 57 │ return-void │ .end method │ │ .method public static buildResultIntent(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent; │ .locals 3 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "blurb" # Ljava/lang/String; │ @@ -448,18 +439,20 @@ │ .line 68 │ .local v3, "conditionResult":I │ :goto_1 │ sget-object v6, Lorg/primftpd/remotecontrol/TaskerReceiver;->logger:Lorg/slf4j/Logger; │ │ const-string v7, "got query condition with blurb: {}, setting result: {}" │ │ + .line 69 │ invoke-static {v4}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; │ │ move-result-object v8 │ │ + .line 68 │ invoke-interface {v6, v7, v1, v8}, Lorg/slf4j/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V │ │ .line 70 │ invoke-virtual {p0, v3}, Lorg/primftpd/remotecontrol/TaskerReceiver;->setResultCode(I)V │ │ goto :goto_0 ├── smali/org/primftpd/services/AbstractServerService$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/services/AbstractServerService; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/services/AbstractServerService;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/services/AbstractServerService; │ │ .prologue │ .line 132 │ iput-object p1, p0, Lorg/primftpd/services/AbstractServerService$1;->this$0:Lorg/primftpd/services/AbstractServerService; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/services/FtpServerService$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/services/FtpServerService; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/services/FtpServerService;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/services/FtpServerService; │ │ .prologue │ .line 66 │ iput-object p1, p0, Lorg/primftpd/services/FtpServerService$1;->this$0:Lorg/primftpd/services/FtpServerService; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/services/ServerServiceHandler.smali │ @@ -358,14 +358,15 @@ │ move-result-object v2 │ │ if-eqz v2, :cond_2 │ │ .line 72 │ const-string v2, "power" │ │ + .line 73 │ invoke-virtual {p1, v2}, Lorg/primftpd/services/AbstractServerService;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Landroid/os/PowerManager; │ │ .line 75 ├── smali/org/primftpd/services/SshServerService$1.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$userManager:Lorg/primftpd/AndroidPrefsUserManager; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/services/SshServerService;Lorg/primftpd/AndroidPrefsUserManager;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/services/SshServerService; │ │ .prologue │ .line 104 │ iput-object p1, p0, Lorg/primftpd/services/SshServerService$1;->this$0:Lorg/primftpd/services/SshServerService; │ │ iput-object p2, p0, Lorg/primftpd/services/SshServerService$1;->val$userManager:Lorg/primftpd/AndroidPrefsUserManager; ├── smali/org/primftpd/services/SshServerService$2.smali │ @@ -22,14 +22,15 @@ │ │ .field final synthetic val$pubKey:Ljava/security/PublicKey; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/services/SshServerService;Ljava/security/PublicKey;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/services/SshServerService; │ │ .prologue │ .line 129 │ iput-object p1, p0, Lorg/primftpd/services/SshServerService$2;->this$0:Lorg/primftpd/services/SshServerService; │ │ iput-object p2, p0, Lorg/primftpd/services/SshServerService$2;->val$pubKey:Ljava/security/PublicKey; ├── smali/org/primftpd/services/SshServerService$3.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/primftpd/services/SshServerService; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/services/SshServerService;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/services/SshServerService; │ │ .prologue │ .line 147 │ iput-object p1, p0, Lorg/primftpd/services/SshServerService$3;->this$0:Lorg/primftpd/services/SshServerService; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/primftpd/services/SshServerService$4.smali │ @@ -19,14 +19,15 @@ │ │ .field final synthetic val$keys:Ljava/util/List; │ │ │ # direct methods │ .method constructor (Lorg/primftpd/services/SshServerService;Ljava/util/List;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/primftpd/services/SshServerService; │ │ .prologue │ .line 169 │ iput-object p1, p0, Lorg/primftpd/services/SshServerService$4;->this$0:Lorg/primftpd/services/SshServerService; │ │ iput-object p2, p0, Lorg/primftpd/services/SshServerService$4;->val$keys:Ljava/util/List; ├── smali/org/primftpd/services/SshServerService.smali │ @@ -145,14 +145,15 @@ │ │ move-result v8 │ │ if-nez v8, :cond_0 │ │ iget-object v8, p0, Lorg/primftpd/services/SshServerService;->prefsBean:Lorg/primftpd/PrefsBean; │ │ + .line 101 │ invoke-virtual {v8}, Lorg/primftpd/PrefsBean;->isAnonymousLogin()Z │ │ move-result v8 │ │ if-eqz v8, :cond_1 │ │ .line 103 │ @@ -254,32 +255,35 @@ │ .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 │ │ .line 183 │ .end local v2 # "keys":Ljava/util/List;, "Ljava/util/List;" │ :goto_1 │ return v6 │ │ - .line 139 │ + .line 140 │ .restart local v3 # "pubKey":Ljava/security/PublicKey; │ .restart local v4 # "pubKeyPath":Ljava/lang/String; │ :cond_3 │ invoke-virtual {p0}, Lorg/primftpd/services/SshServerService;->getApplicationContext()Landroid/content/Context; │ │ move-result-object v8 │ │ const v9, 0x7f060002 │ │ + .line 141 │ invoke-virtual {p0, v9}, Lorg/primftpd/services/SshServerService;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v9 │ │ + .line 139 │ invoke-static {v8, v9, v7}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; │ │ move-result-object v8 │ │ + .line 142 │ invoke-virtual {v8}, Landroid/widget/Toast;->show()V │ │ goto :goto_0 │ │ .line 179 │ .end local v3 # "pubKey":Ljava/security/PublicKey; │ .end local v4 # "pubKeyPath":Ljava/lang/String; ├── smali/org/primftpd/util/Defaults.smali │ @@ -24,14 +24,15 @@ │ .line 11 │ new-instance v0, Ljava/lang/StringBuilder; │ │ invoke-direct {v0}, Ljava/lang/StringBuilder;->()V │ │ sget-object v1, Lorg/primftpd/util/Defaults;->HOME_DIR:Ljava/io/File; │ │ + .line 12 │ invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v0 │ @@ -44,14 +45,15 @@ │ │ invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v0 │ │ sput-object v0, Lorg/primftpd/util/Defaults;->PUB_KEY_AUTH_KEY_PATH:Ljava/lang/String; │ │ + .line 11 │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue ├── smali/org/primftpd/util/KeyInfoProvider.smali │ @@ -110,25 +110,27 @@ │ .local v2, "hexString":Ljava/lang/String; │ invoke-virtual {v2}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ if-le v4, v6, :cond_2 │ │ - .line 82 │ + .line 83 │ invoke-virtual {v2}, Ljava/lang/String;->length()I │ │ move-result v4 │ │ add-int/lit8 v4, v4, -0x2 │ │ + .line 84 │ invoke-virtual {v2}, Ljava/lang/String;->length()I │ │ move-result v5 │ │ + .line 82 │ invoke-virtual {v2, v4, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v2 │ │ .line 88 │ :cond_0 │ :goto_1 │ @@ -468,26 +470,30 @@ │ │ move-object v1, v0 │ │ .line 141 │ .local v1, "dsaPubKey":Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey; │ new-instance v8, Ljava/security/spec/DSAPublicKeySpec; │ │ + .line 142 │ invoke-virtual {v1}, Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey;->getY()Ljava/math/BigInteger; │ │ move-result-object v12 │ │ + .line 143 │ invoke-virtual {v1}, Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey;->getP()Ljava/math/BigInteger; │ │ move-result-object v13 │ │ + .line 144 │ invoke-virtual {v1}, Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey;->getQ()Ljava/math/BigInteger; │ │ move-result-object v14 │ │ + .line 145 │ invoke-virtual {v1}, Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey;->getG()Ljava/math/BigInteger; │ │ move-result-object v15 │ │ invoke-direct {v8, v12, v13, v14, v15}, Ljava/security/spec/DSAPublicKeySpec;->(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V │ │ .line 147 │ @@ -516,15 +522,15 @@ │ :try_end_4 │ .catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_4 │ │ :cond_2 │ :goto_2 │ move-object v4, v5 │ │ - .line 163 │ + .line 148 │ .end local v5 # "fis":Ljava/io/FileInputStream; │ .restart local v4 # "fis":Ljava/io/FileInputStream; │ goto :goto_1 │ │ .line 150 │ .end local v1 # "dsaPubKey":Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey; │ .end local v4 # "fis":Ljava/io/FileInputStream; │ @@ -543,42 +549,46 @@ │ │ new-array v14, v14, [Ljava/lang/Object; │ │ const/4 v15, 0x0 │ │ const-class v16, Lcom/sshtools/ssh/components/jce/Ssh2RsaPublicKey; │ │ + .line 151 │ invoke-virtual/range {v16 .. v16}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v16 │ │ aput-object v16, v14, v15 │ │ const/4 v15, 0x1 │ │ const-class v16, Lcom/sshtools/ssh/components/jce/Ssh2DsaPublicKey; │ │ + .line 152 │ invoke-virtual/range {v16 .. v16}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v16 │ │ aput-object v16, v14, v15 │ │ const/4 v15, 0x2 │ │ + .line 153 │ invoke-virtual {v10}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v16 │ │ invoke-virtual/range {v16 .. v16}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v16 │ │ aput-object v16, v14, v15 │ │ + .line 150 │ invoke-interface {v12, v13, v14}, Lorg/slf4j/Logger;->error(Ljava/lang/String;[Ljava/lang/Object;)V │ :try_end_5 │ .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_5} :catch_6 │ .catchall {:try_start_5 .. :try_end_5} :catchall_1 │ │ .line 159 │ if-eqz v5, :cond_4 ├── smali/org/primftpd/util/PrngFixes.smali │ @@ -32,21 +32,22 @@ │ │ invoke-static {v0}, Lorg/slf4j/LoggerFactory;->getLogger(Ljava/lang/Class;)Lorg/slf4j/Logger; │ │ move-result-object v0 │ │ sput-object v0, Lorg/primftpd/util/PrngFixes;->LOGGER:Lorg/slf4j/Logger; │ │ - .line 51 │ + .line 52 │ invoke-static {}, Lorg/primftpd/util/PrngFixes;->getBuildFingerprintAndDeviceSerial()[B │ │ move-result-object v0 │ │ sput-object v0, Lorg/primftpd/util/PrngFixes;->BUILD_FINGERPRINT_AND_DEVICE_SERIAL:[B │ │ + .line 51 │ return-void │ .end method │ │ .method private constructor ()V │ .locals 0 │ │ .prologue │ @@ -154,26 +155,28 @@ │ │ const/4 v5, 0x0 │ │ const-class v6, [B │ │ aput-object v6, v4, v5 │ │ + .line 86 │ invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v2 │ │ const/4 v3, 0x0 │ │ const/4 v4, 0x1 │ │ new-array v4, v4, [Ljava/lang/Object; │ │ const/4 v5, 0x0 │ │ + .line 87 │ invoke-static {}, Lorg/primftpd/util/PrngFixes;->generateSeed()[B │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ invoke-virtual {v2, v3, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ @@ -199,14 +202,15 @@ │ │ const/4 v5, 0x1 │ │ sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class; │ │ aput-object v6, v4, v5 │ │ + .line 92 │ invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; │ │ move-result-object v2 │ │ const/4 v3, 0x0 │ │ const/4 v4, 0x2 │ @@ -219,26 +223,28 @@ │ │ aput-object v6, v4, v5 │ │ const/4 v5, 0x1 │ │ const/16 v6, 0x400 │ │ + .line 93 │ invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; │ │ move-result-object v6 │ │ aput-object v6, v4, v5 │ │ invoke-virtual {v2, v3, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; │ │ move-result-object v2 │ │ check-cast v2, Ljava/lang/Integer; │ │ + .line 90 │ invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I │ │ move-result v0 │ │ .line 94 │ .restart local v0 # "bytesRead":I │ if-eq v0, v7, :cond_1 │ @@ -520,14 +526,15 @@ │ const-string v5, "applying PRNG fix" │ │ invoke-interface {v4, v5}, Lorg/slf4j/Logger;->info(Ljava/lang/String;)V │ │ .line 123 │ const-string v4, "SecureRandom.SHA1PRNG" │ │ + .line 124 │ invoke-static {v4}, Ljava/security/Security;->getProviders(Ljava/lang/String;)[Ljava/security/Provider; │ │ move-result-object v3 │ │ .line 125 │ .restart local v3 # "secureRandomProviders":[Ljava/security/Provider; │ if-eqz v3, :cond_2 │ @@ -538,18 +545,20 @@ │ │ const-class v4, Lorg/primftpd/util/PrngFixes$LinuxPRNGSecureRandomProvider; │ │ const/4 v5, 0x0 │ │ aget-object v5, v3, v5 │ │ + .line 128 │ invoke-virtual {v5}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ + .line 127 │ invoke-virtual {v4, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_3 │ │ .line 129 │ @@ -566,22 +575,24 @@ │ │ invoke-direct {v1}, Ljava/security/SecureRandom;->()V │ │ .line 136 │ .restart local v1 # "rng1":Ljava/security/SecureRandom; │ const-class v4, Lorg/primftpd/util/PrngFixes$LinuxPRNGSecureRandomProvider; │ │ + .line 137 │ invoke-virtual {v1}, Ljava/security/SecureRandom;->getProvider()Ljava/security/Provider; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ + .line 136 │ invoke-virtual {v4, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_4 │ │ .line 138 │ @@ -593,14 +604,15 @@ │ │ const-string v6, "new SecureRandom() backed by wrong Provider: " │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ + .line 140 │ invoke-virtual {v1}, Ljava/security/SecureRandom;->getProvider()Ljava/security/Provider; │ │ move-result-object v6 │ │ invoke-virtual {v6}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v6 │ @@ -628,22 +640,24 @@ │ │ move-result-object v2 │ │ .line 149 │ .restart local v2 # "rng2":Ljava/security/SecureRandom; │ const-class v4, Lorg/primftpd/util/PrngFixes$LinuxPRNGSecureRandomProvider; │ │ + .line 150 │ invoke-virtual {v2}, Ljava/security/SecureRandom;->getProvider()Ljava/security/Provider; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v5 │ │ + .line 149 │ invoke-virtual {v4, v5}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z │ │ move-result v4 │ │ if-nez v4, :cond_0 │ │ .line 151 │ @@ -655,14 +669,15 @@ │ │ const-string v6, "SecureRandom.getInstance(\"SHA1PRNG\") backed by wrong Provider: " │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ + .line 153 │ invoke-virtual {v2}, Ljava/security/SecureRandom;->getProvider()Ljava/security/Provider; │ │ move-result-object v6 │ │ invoke-virtual {v6}, Ljava/lang/Object;->getClass()Ljava/lang/Class; │ │ move-result-object v6 ├── smali/org/primftpd/util/ServicesStartStopUtil.smali │ @@ -22,117 +22,116 @@ │ .locals 10 │ .param p0, "context" # Landroid/content/Context; │ │ .prologue │ const/4 v9, 0x1 │ │ .line 108 │ - new-instance v5, Lorg/primftpd/util/ServersRunningBean; │ + new-instance v4, Lorg/primftpd/util/ServersRunningBean; │ │ - invoke-direct {v5}, Lorg/primftpd/util/ServersRunningBean;->()V │ + invoke-direct {v4}, Lorg/primftpd/util/ServersRunningBean;->()V │ │ .line 109 │ - .local v5, "serversRunning":Lorg/primftpd/util/ServersRunningBean; │ - const-string v8, "activity" │ + .local v4, "serversRunning":Lorg/primftpd/util/ServersRunningBean; │ + const-string v7, "activity" │ │ - invoke-virtual {p0, v8}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ + invoke-virtual {p0, v7}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; │ │ - move-result-object v3 │ + move-result-object v2 │ │ - check-cast v3, Landroid/app/ActivityManager; │ + check-cast v2, Landroid/app/ActivityManager; │ │ .line 110 │ - .local v3, "manager":Landroid/app/ActivityManager; │ - const v8, 0x7fffffff │ + .local v2, "manager":Landroid/app/ActivityManager; │ + const v7, 0x7fffffff │ │ - invoke-virtual {v3, v8}, Landroid/app/ActivityManager;->getRunningServices(I)Ljava/util/List; │ + invoke-virtual {v2, v7}, Landroid/app/ActivityManager;->getRunningServices(I)Ljava/util/List; │ │ - move-result-object v4 │ + move-result-object v3 │ │ .line 111 │ - .local v4, "runningServices":Ljava/util/List;, "Ljava/util/List;" │ - const-class v8, Lorg/primftpd/services/FtpServerService; │ + .local v3, "runningServices":Ljava/util/List;, "Ljava/util/List;" │ + const-class v7, Lorg/primftpd/services/FtpServerService; │ │ - invoke-virtual {v8}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ move-result-object v1 │ │ .line 112 │ .local v1, "ftpServiceClassName":Ljava/lang/String; │ - const-class v8, Lorg/primftpd/services/SshServerService; │ + const-class v7, Lorg/primftpd/services/SshServerService; │ │ - invoke-virtual {v8}, Ljava/lang/Class;->getName()Ljava/lang/String; │ + invoke-virtual {v7}, Ljava/lang/Class;->getName()Ljava/lang/String; │ │ - move-result-object v7 │ + move-result-object v6 │ │ .line 113 │ - .local v7, "sshServiceClassName":Ljava/lang/String; │ - invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + .local v6, "sshServiceClassName":Ljava/lang/String; │ + invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v2 │ + move-result-object v7 │ │ - .local v2, "i$":Ljava/util/Iterator; │ :cond_0 │ - invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v8 │ │ if-eqz v8, :cond_3 │ │ - invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v6 │ + move-result-object v5 │ │ - check-cast v6, Landroid/app/ActivityManager$RunningServiceInfo; │ + check-cast v5, Landroid/app/ActivityManager$RunningServiceInfo; │ │ .line 114 │ - .local v6, "service":Landroid/app/ActivityManager$RunningServiceInfo; │ - iget-object v8, v6, Landroid/app/ActivityManager$RunningServiceInfo;->service:Landroid/content/ComponentName; │ + .local v5, "service":Landroid/app/ActivityManager$RunningServiceInfo; │ + iget-object v8, v5, Landroid/app/ActivityManager$RunningServiceInfo;->service:Landroid/content/ComponentName; │ │ invoke-virtual {v8}, Landroid/content/ComponentName;->getClassName()Ljava/lang/String; │ │ move-result-object v0 │ │ .line 115 │ .local v0, "currentClassName":Ljava/lang/String; │ invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_1 │ │ .line 116 │ - iput-boolean v9, v5, Lorg/primftpd/util/ServersRunningBean;->ftp:Z │ + iput-boolean v9, v4, Lorg/primftpd/util/ServersRunningBean;->ftp:Z │ │ .line 118 │ :cond_1 │ - invoke-virtual {v7, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ + invoke-virtual {v6, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v8 │ │ if-eqz v8, :cond_2 │ │ .line 119 │ - iput-boolean v9, v5, Lorg/primftpd/util/ServersRunningBean;->ssh:Z │ + iput-boolean v9, v4, Lorg/primftpd/util/ServersRunningBean;->ssh:Z │ │ .line 121 │ :cond_2 │ - iget-boolean v8, v5, Lorg/primftpd/util/ServersRunningBean;->ftp:Z │ + iget-boolean v8, v4, Lorg/primftpd/util/ServersRunningBean;->ftp:Z │ │ if-eqz v8, :cond_0 │ │ - iget-boolean v8, v5, Lorg/primftpd/util/ServersRunningBean;->ssh:Z │ + iget-boolean v8, v4, Lorg/primftpd/util/ServersRunningBean;->ssh:Z │ │ if-eqz v8, :cond_0 │ │ .line 125 │ .end local v0 # "currentClassName":Ljava/lang/String; │ - .end local v6 # "service":Landroid/app/ActivityManager$RunningServiceInfo; │ + .end local v5 # "service":Landroid/app/ActivityManager$RunningServiceInfo; │ :cond_3 │ - return-object v5 │ + return-object v4 │ .end method │ │ .method protected static createFtpServiceIntent(Landroid/content/Context;Lorg/primftpd/PrefsBean;)Landroid/content/Intent; │ .locals 2 │ .param p0, "context" # Landroid/content/Context; │ .param p1, "prefsBean" # Lorg/primftpd/PrefsBean; │ │ @@ -261,22 +260,23 @@ │ │ move-result-object v7 │ │ .line 140 │ .local v7, "contentTitle":Ljava/lang/CharSequence; │ move-object v6, v15 │ │ - .line 143 │ + .line 144 │ .local v6, "contentText":Ljava/lang/CharSequence; │ invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; │ │ move-result-object v18 │ │ const/high16 v19, 0x7f020000 │ │ + .line 143 │ invoke-static/range {v18 .. v19}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap; │ │ move-result-object v9 │ │ .line 147 │ .local v9, "largeIcon":Landroid/graphics/Bitmap; │ invoke-static {}, Ljava/lang/System;->currentTimeMillis()J │ @@ -289,50 +289,57 @@ │ │ move-object/from16 v0, v18 │ │ move-object/from16 v1, p0 │ │ invoke-direct {v0, v1}, Landroid/app/Notification$Builder;->(Landroid/content/Context;)V │ │ + .line 150 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v15}, Landroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v18 │ │ + .line 151 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v7}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v18 │ │ + .line 152 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v6}, Landroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; │ │ move-result-object v18 │ │ + .line 153 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v8}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder; │ │ move-result-object v18 │ │ + .line 154 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v9}, Landroid/app/Notification$Builder;->setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder; │ │ move-result-object v18 │ │ + .line 155 │ move-object/from16 v0, v18 │ │ invoke-virtual {v0, v5}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; │ │ move-result-object v18 │ │ + .line 156 │ move-object/from16 v0, v18 │ │ move-wide/from16 v1, v16 │ │ invoke-virtual {v0, v1, v2}, Landroid/app/Notification$Builder;->setWhen(J)Landroid/app/Notification$Builder; │ │ move-result-object v4 │ @@ -352,20 +359,22 @@ │ .line 158 │ new-instance v18, Landroid/app/Notification$Action$Builder; │ │ const-string v19, "" │ │ const v20, 0x7f02002f │ │ + .line 159 │ invoke-static/range {v19 .. v20}, Landroid/graphics/drawable/Icon;->createWithResource(Ljava/lang/String;I)Landroid/graphics/drawable/Icon; │ │ move-result-object v19 │ │ const v20, 0x7f060035 │ │ + .line 160 │ move-object/from16 v0, p0 │ │ move/from16 v1, v20 │ │ invoke-virtual {v0, v1}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v20 │ @@ -374,14 +383,15 @@ │ │ move-object/from16 v1, v19 │ │ move-object/from16 v2, v20 │ │ invoke-direct {v0, v1, v2, v12}, Landroid/app/Notification$Action$Builder;->(Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V │ │ + .line 161 │ invoke-virtual/range {v18 .. v18}, Landroid/app/Notification$Action$Builder;->build()Landroid/app/Notification$Action; │ │ move-result-object v13 │ │ .line 162 │ .local v13, "stopAction":Landroid/app/Notification$Action; │ invoke-virtual {v4, v13}, Landroid/app/Notification$Builder;->addAction(Landroid/app/Notification$Action;)Landroid/app/Notification$Builder; │ @@ -443,22 +453,24 @@ │ if-lt v0, v1, :cond_0 │ │ .line 164 │ const v18, 0x7f02002f │ │ const v19, 0x7f060035 │ │ + .line 166 │ move-object/from16 v0, p0 │ │ move/from16 v1, v19 │ │ invoke-virtual {v0, v1}, Landroid/content/Context;->getString(I)Ljava/lang/String; │ │ move-result-object v19 │ │ + .line 164 │ move/from16 v0, v18 │ │ move-object/from16 v1, v19 │ │ invoke-virtual {v4, v0, v1, v12}, Landroid/app/Notification$Builder;->addAction(ILjava/lang/CharSequence;Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; │ │ goto :goto_0 │ @@ -550,14 +562,15 @@ │ │ const/4 v4, 0x1 │ │ invoke-static {p0, v3, v4}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v3 │ │ + .line 44 │ invoke-virtual {v3}, Landroid/widget/Toast;->show()V │ │ .line 46 │ if-nez p2, :cond_0 │ │ .line 48 │ new-instance v0, Landroid/content/Intent; │ @@ -754,18 +767,20 @@ │ const v3, 0x7f020031 │ │ invoke-virtual {v1, v6, v3}, Landroid/widget/RemoteViews;->setImageViewResource(II)V │ │ .line 192 │ const v3, 0x7f06003a │ │ + .line 194 │ invoke-virtual {p0, v3}, Landroid/content/Context;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v3 │ │ + .line 192 │ invoke-virtual {v1, v7, v3}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V │ │ .line 207 │ :goto_0 │ new-instance v2, Landroid/content/ComponentName; │ │ const-class v3, Lorg/primftpd/StartStopWidgetProvider; │ @@ -799,15 +814,17 @@ │ const v3, 0x7f02000d │ │ invoke-virtual {v1, v6, v3}, Landroid/widget/RemoteViews;->setImageViewResource(II)V │ │ .line 202 │ const v3, 0x7f060039 │ │ + .line 204 │ invoke-virtual {p0, v3}, Landroid/content/Context;->getText(I)Ljava/lang/CharSequence; │ │ move-result-object v3 │ │ + .line 202 │ invoke-virtual {v1, v7, v3}, Landroid/widget/RemoteViews;->setTextViewText(ILjava/lang/CharSequence;)V │ │ goto :goto_0 │ .end method ├── smali/org/primftpd/util/StringUtils$InitStripAccents.smali │ @@ -77,14 +77,15 @@ │ │ invoke-virtual {v9}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader; │ │ move-result-object v9 │ │ const-string v10, "java.text.Normalizer$Form" │ │ + .line 726 │ invoke-virtual {v9, v10}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class; │ │ move-result-object v8 │ │ .line 727 │ .local v8, "normalizerFormClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const-string v9, "NFD" │ @@ -106,14 +107,15 @@ │ │ invoke-virtual {v9}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader; │ │ move-result-object v9 │ │ const-string v10, "java.text.Normalizer" │ │ + .line 729 │ invoke-virtual {v9, v10}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class; │ │ move-result-object v7 │ │ .line 730 │ .local v7, "normalizerClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const-string v9, "normalize" │ @@ -176,14 +178,15 @@ │ │ invoke-virtual {v9}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader; │ │ move-result-object v9 │ │ const-string v10, "sun.text.Normalizer" │ │ + .line 738 │ invoke-virtual {v9, v10}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class; │ │ move-result-object v7 │ │ .line 739 │ .restart local v7 # "normalizerClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;" │ const-string v9, "decompose" ├── smali/org/primftpd/util/StringUtils.smali │ @@ -400,36 +400,39 @@ │ :cond_1 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1, v0}, Ljava/lang/StringBuilder;->(I)V │ │ const/4 v2, 0x0 │ │ + .line 2755 │ invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Character;->toTitleCase(C)C │ │ move-result v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const/4 v2, 0x1 │ │ + .line 2756 │ invoke-virtual {p0, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 2757 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object p0 │ │ goto :goto_0 │ .end method │ │ @@ -3223,34 +3226,38 @@ │ │ add-int/lit8 v3, v3, 0x1 │ │ invoke-direct {v2, v3}, Ljava/lang/StringBuilder;->(I)V │ │ const/4 v3, 0x0 │ │ + .line 2173 │ invoke-virtual {p0, v3, p2}, Ljava/lang/String;->substring(II)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 2174 │ invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 2175 │ invoke-virtual {p0, p3}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v3 │ │ invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v2 │ │ + .line 2176 │ invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v2 │ │ goto :goto_0 │ .end method │ │ @@ -4394,14 +4401,15 @@ │ │ aget-object v17, p1, v6 │ │ if-eqz v17, :cond_4 │ │ aget-object v17, p1, v6 │ │ + .line 1934 │ invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->length()I │ │ move-result v17 │ │ if-eqz v17, :cond_4 │ │ aget-object v17, p2, v6 │ @@ -4631,14 +4639,15 @@ │ │ aget-object v17, p1, v6 │ │ if-eqz v17, :cond_e │ │ aget-object v17, p1, v6 │ │ + .line 1992 │ invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->length()I │ │ move-result v17 │ │ if-eqz v17, :cond_e │ │ aget-object v17, p2, v6 │ @@ -5220,14 +5229,15 @@ │ │ const-string v6, "The stripAccents(CharSequence) method requires at least Java6, but got: " │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ + .line 638 │ # getter for: Lorg/primftpd/util/StringUtils$InitStripAccents;->java6Exception:Ljava/lang/Throwable; │ invoke-static {}, Lorg/primftpd/util/StringUtils$InitStripAccents;->access$200()Ljava/lang/Throwable; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ @@ -5235,14 +5245,15 @@ │ │ const-string v6, "; or a Sun JVM: " │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v5 │ │ + .line 639 │ # getter for: Lorg/primftpd/util/StringUtils$InitStripAccents;->sunException:Ljava/lang/Throwable; │ invoke-static {}, Lorg/primftpd/util/StringUtils$InitStripAccents;->access$300()Ljava/lang/Throwable; │ │ move-result-object v6 │ │ invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; │ │ @@ -6314,36 +6325,39 @@ │ :cond_1 │ new-instance v1, Ljava/lang/StringBuilder; │ │ invoke-direct {v1, v0}, Ljava/lang/StringBuilder;->(I)V │ │ const/4 v2, 0x0 │ │ + .line 2786 │ invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C │ │ move-result v2 │ │ invoke-static {v2}, Ljava/lang/Character;->toLowerCase(C)C │ │ move-result v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ const/4 v2, 0x1 │ │ + .line 2787 │ invoke-virtual {p0, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String; │ │ move-result-object v2 │ │ invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v1 │ │ + .line 2788 │ invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object p0 │ │ goto :goto_0 │ .end method ├── smali/org/slf4j/LoggerFactory.smali │ @@ -151,14 +151,15 @@ │ const/4 v4, 0x4 │ │ sput v4, Lorg/slf4j/LoggerFactory;->INITIALIZATION_STATE:I │ │ .line 130 │ const-string v4, "Failed to load class \"org.slf4j.impl.StaticLoggerBinder\"." │ │ + .line 131 │ invoke-static {v4}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ │ .line 132 │ const-string v4, "Defaulting to no-operation (NOP) logger implementation" │ │ invoke-static {v4}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ │ @@ -267,19 +268,21 @@ │ :cond_0 │ return-void │ │ .line 164 │ :cond_1 │ const-string v3, "The following loggers will not work becasue they were created" │ │ + .line 165 │ invoke-static {v3}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ │ .line 166 │ const-string v3, "during the default configuration phase of the underlying logging system." │ │ + .line 167 │ invoke-static {v3}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ │ .line 168 │ const-string v3, "See also http://www.slf4j.org/codes.html#substituteLogger" │ │ invoke-static {v3}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ │ @@ -493,14 +496,15 @@ │ .locals 8 │ │ .prologue │ .line 208 │ :try_start_0 │ const-class v6, Lorg/slf4j/LoggerFactory; │ │ + .line 209 │ invoke-virtual {v6}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; │ │ move-result-object v3 │ │ .line 211 │ .local v3, "loggerFactoryClassLoader":Ljava/lang/ClassLoader; │ if-nez v3, :cond_1 │ @@ -563,14 +567,15 @@ │ return-void │ │ .line 214 │ :cond_1 │ :try_start_1 │ sget-object v6, Lorg/slf4j/LoggerFactory;->STATIC_LOGGER_BINDER_PATH:Ljava/lang/String; │ │ + .line 215 │ invoke-virtual {v3, v6}, Ljava/lang/ClassLoader;->getResources(Ljava/lang/String;)Ljava/util/Enumeration; │ │ move-result-object v5 │ │ .restart local v5 # "paths":Ljava/util/Enumeration; │ goto :goto_0 │ │ @@ -715,14 +720,15 @@ │ │ invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v4 │ │ sget-object v5, Lorg/slf4j/LoggerFactory;->API_COMPATIBILITY_LIST:[Ljava/lang/String; │ │ + .line 188 │ invoke-static {v5}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List; │ │ move-result-object v5 │ │ invoke-virtual {v5}, Ljava/lang/Object;->toString()Ljava/lang/String; │ │ move-result-object v5 │ @@ -731,14 +737,15 @@ │ │ move-result-object v4 │ │ invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 186 │ invoke-static {v4}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ │ .line 189 │ const-string v4, "See http://www.slf4j.org/codes.html#version_mismatch for further details." │ │ invoke-static {v4}, Lorg/slf4j/helpers/Util;->report(Ljava/lang/String;)V │ :try_end_0 ├── original/AndroidManifest.xml │ @@ -52,16 +52,16 @@ │ 00000330: 6c00 6100 7400 6600 6f00 7200 6d00 4200 l.a.t.f.o.r.m.B. │ 00000340: 7500 6900 6c00 6400 5600 6500 7200 7300 u.i.l.d.V.e.r.s. │ 00000350: 6900 6f00 6e00 4e00 6100 6d00 6500 0000 i.o.n.N.a.m.e... │ 00000360: 0800 6d00 6100 6e00 6900 6600 6500 7300 ..m.a.n.i.f.e.s. │ 00000370: 7400 0000 0c00 6f00 7200 6700 2e00 7000 t.....o.r.g...p. │ 00000380: 7200 6900 6d00 6600 7400 7000 6400 0000 r.i.m.f.t.p.d... │ 00000390: 0300 3400 2e00 3500 0000 0200 3200 3300 ..4...5.....2.3. │ -000003a0: 0000 0b00 3600 2e00 3000 2d00 3200 3100 ....6...0.-.2.1. │ -000003b0: 3600 3600 3700 3600 3700 0000 0800 7500 6.6.7.6.7.....u. │ +000003a0: 0000 0b00 3600 2e00 3000 2d00 3200 3700 ....6...0.-.2.7. │ +000003b0: 3000 3400 3000 3000 3200 0000 0800 7500 0.4.0.0.2.....u. │ 000003c0: 7300 6500 7300 2d00 7300 6400 6b00 0000 s.e.s.-.s.d.k... │ 000003d0: 0f00 7500 7300 6500 7300 2d00 7000 6500 ..u.s.e.s.-.p.e. │ 000003e0: 7200 6d00 6900 7300 7300 6900 6f00 6e00 r.m.i.s.s.i.o.n. │ 000003f0: 0000 1b00 6100 6e00 6400 7200 6f00 6900 ....a.n.d.r.o.i. │ 00000400: 6400 2e00 7000 6500 7200 6d00 6900 7300 d...p.e.r.m.i.s. │ 00000410: 7300 6900 6f00 6e00 2e00 4900 4e00 5400 s.i.o.n...I.N.T. │ 00000420: 4500 5200 4e00 4500 5400 0000 2900 6100 E.R.N.E.T...).a.