Smali - как отредактировать ссылку на клик в этом коде - PullRequest
0 голосов
/ 19 мая 2018

Следуя смали-коду, просматривая URL в веб-просмотре, нажимая кнопку обзора.Но за ссылкой следует имя пакета в итоговом URL.Так что я должен изменить в следующем коде smali, чтобы перейти только по ссылке?

  .class final Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;
.super Ljava/lang/Object;
.source "MainActivity.java"

# interfaces
.implements Landroid/view/View$OnClickListener;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/elkurdi/calloutalerter/MainActivity;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x12
    name = "ReviewButtonListener"
.end annotation


# instance fields
.field final synthetic this$0:Lcom/elkurdi/calloutalerter/MainActivity;


# direct methods
.method private constructor <init>(Lcom/elkurdi/calloutalerter/MainActivity;)V
    .locals 0

    .prologue
    .line 83
    iput-object p1, p0, Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;->this$0:Lcom/elkurdi/calloutalerter/MainActivity;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method synthetic constructor <init>(Lcom/elkurdi/calloutalerter/MainActivity;Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;)V
    .locals 0

    .prologue
    .line 83
    invoke-direct {p0, p1}, Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;-><init>(Lcom/elkurdi/calloutalerter/MainActivity;)V

    return-void
.end method


# virtual methods
.method public onClick(Landroid/view/View;)V
    .locals 4
    .param p1, "v"    # Landroid/view/View;

    .prologue
    .line 88
    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "https://www.google.com/"

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    .line 89
    iget-object v3, p0, Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;->this$0:Lcom/elkurdi/calloutalerter/MainActivity;

    invoke-virtual {v3}, Lcom/elkurdi/calloutalerter/MainActivity;->getApplicationContext()Landroid/content/Context;

    move-result-object v3

   invoke-virtual {v3}, Landroid/content/Context;->getPackageName()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 88
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

  move-result-object v2

   invoke-static {v2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;

  move-result-object v1

  .line 90
    .local v1, "uri":Landroid/net/Uri;
    new-instance v0, Landroid/content/Intent;

    const-string v2, "android.intent.action.VIEW"

    invoke-direct {v0, v2, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V

    .line 92
    .local v0, "rateAppIntent":Landroid/content/Intent;
    iget-object v2, p0, Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;->this$0:Lcom/elkurdi/calloutalerter/MainActivity;

    invoke-virtual {v2}, Lcom/elkurdi/calloutalerter/MainActivity;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v2

    const/4 v3, 0x0

    invoke-virtual {v2, v0, v3}, Landroid/content/pm/PackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;

    move-result-object v2

    .line 93
    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    if-lez v2, :cond_0

    .line 94
    iget-object v2, p0, Lcom/elkurdi/calloutalerter/MainActivity$ReviewButtonListener;->this$0:Lcom/elkurdi/calloutalerter/MainActivity;

    invoke-virtual {v2, v0}, Lcom/elkurdi/calloutalerter/MainActivity;->startActivity(Landroid/content/Intent;)V

    .line 98
    :goto_0
    return-void

    .line 96
    :cond_0
    const-string v2, "setting"

    const-string v3, "error while asking for review"

    invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_0
.end method

Заранее спасибо.и извините за длинный код, поскольку я скопировал весь код в файле smali.Я новичок в этом, поэтому, пожалуйста, помогите.

1 Ответ

0 голосов
/ 18 июля 2018

Ну, вы видите, есть несколько строк, которые добавляют имя пакета в StringBuilder.Удалите эти строки и убедитесь, что регистры совпадают, и вы золотой.Измените регистр первого объекта move-result-object на v2, затем удалите следующие 4 строки.

...