Вверх ↑
Ответов: 287
Рейтинг: 5
#1: 2022-08-22 02:24:20 ЛС | профиль | цитата
Вот нацарапал (подглядел.переделал.придумал) регулярку .method public static(.+)\(Landroid/content/Context;\)I\\s+.+[\s\S]*?Google Play services missing.+[\s\S]*?end method
На https://regex101.com/ она прекрасно работает а вот на Hiasm не могу заставить.
Она должна Спарсить вот такой текст

.method public static isGooglePlayServicesAvailable(Landroid/content/Context;)I
.locals 8
.param p0, "context" # Landroid/content/Context;

.prologue
const/4 v2, 0x1

const/4 v1, 0x0

const/16 v0, 0x9

invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

move-result-object v3

sget-boolean v4, Lcom/google/android/gms/common/internal/zze;->zzPq:Z

if-nez v4, :cond_0

:try_start_0
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v4

sget v5, Lcom/google/android/gms/R$string;->common_google_play_services_unknown_issue:I

invoke-virtual {v4, v5}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
:try_end_0
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0

:cond_0
:goto_0
sget-boolean v4, Lcom/google/android/gms/common/internal/zze;->zzPq:Z

if-nez v4, :cond_1

invoke-static {p0}, Lcom/google/android/gms/common/GooglePlayServicesUtil;->zzJ(Landroid/content/Context;)V

:cond_1
:try_start_1
const-string v4, "com.google.android.gms"

const/16 v5, 0x40

invoke-virtual {v3, v4, v5}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
:try_end_1
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_1 .. :try_end_1} :catch_1

move-result-object v4

invoke-static {}, Lcom/google/android/gms/common/zzc;->zzhP()Lcom/google/android/gms/common/zzc;

move-result-object v5

iget v6, v4, Landroid/content/pm/PackageInfo;->versionCode:I

invoke-static {v6}, Lcom/google/android/gms/internal/zzlu;->zzbd(I)Z

move-result v6

if-nez v6, :cond_2

invoke-static {p0}, Lcom/google/android/gms/internal/zzlu;->zzQ(Landroid/content/Context;)Z

move-result v6

if-eqz v6, :cond_3

:cond_2
sget-object v6, Lcom/google/android/gms/common/zzb$zzaq;->zzLC:[Lcom/google/android/gms/common/zzb$zza;

invoke-virtual {v5, v4, v6}, Lcom/google/android/gms/common/zzc;->zza(Landroid/content/pm/PackageInfo;[Lcom/google/android/gms/common/zzb$zza;)Lcom/google/android/gms/common/zzb$zza;

move-result-object v5

if-nez v5, :cond_5

const-string v1, "GooglePlayServicesUtil"

const-string v2, "Google Play services signature invalid."

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

:goto_1
return v0

:catch_0
move-exception v4

const-string v4, "GooglePlayServicesUtil"

const-string v5, "The Google Play services resources were not found. Check your project configuration to ensure that the resources are included."

invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

goto :goto_0

:catch_1
move-exception v0

const-string v0, "GooglePlayServicesUtil"

const-string v1, "Google Play services is missing."

invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

move v0, v2

goto :goto_1

:cond_3
:try_start_2
const-string v6, "com.android.vending"

const/16 v7, 0x40

invoke-virtual {v3, v6, v7}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
:try_end_2
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_2 .. :try_end_2} :catch_2

move-result-object v6

sget-object v7, Lcom/google/android/gms/common/zzb$zzaq;->zzLC:[Lcom/google/android/gms/common/zzb$zza;

invoke-virtual {v5, v6, v7}, Lcom/google/android/gms/common/zzc;->zza(Landroid/content/pm/PackageInfo;[Lcom/google/android/gms/common/zzb$zza;)Lcom/google/android/gms/common/zzb$zza;

move-result-object v6

if-nez v6, :cond_4

const-string v1, "GooglePlayServicesUtil"

const-string v2, "Google Play Store signature invalid."

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

goto :goto_1

:catch_2
move-exception v1

const-string v1, "GooglePlayServicesUtil"

const-string v2, "Google Play Store is missing."

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

goto :goto_1

:cond_4
new-array v7, v2, [Lcom/google/android/gms/common/zzb$zza;

aput-object v6, v7, v1

invoke-virtual {v5, v4, v7}, Lcom/google/android/gms/common/zzc;->zza(Landroid/content/pm/PackageInfo;[Lcom/google/android/gms/common/zzb$zza;)Lcom/google/android/gms/common/zzb$zza;

move-result-object v5

if-nez v5, :cond_5

const-string v1, "GooglePlayServicesUtil"

const-string v2, "Google Play services signature invalid."

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

goto :goto_1

:cond_5
const v0, 0x6c42d8

invoke-static {v0}, Lcom/google/android/gms/internal/zzlu;->zzbb(I)I

move-result v0

iget v5, v4, Landroid/content/pm/PackageInfo;->versionCode:I

invoke-static {v5}, Lcom/google/android/gms/internal/zzlu;->zzbb(I)I

move-result v5

if-ge v5, v0, :cond_6

const-string v0, "GooglePlayServicesUtil"

new-instance v1, Ljava/lang/StringBuilder;

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

const-string v2, "Google Play services out of date. Requires 7095000 but found "

invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v1

iget v2, v4, Landroid/content/pm/PackageInfo;->versionCode:I

invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v1

invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v1

invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

const/4 v0, 0x2

goto :goto_1

:cond_6
:try_start_3
const-string v0, "com.google.android.gms"

const/4 v4, 0x0

invoke-virtual {v3, v0, v4}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
:try_end_3
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_3 .. :try_end_3} :catch_3

move-result-object v0

iget-boolean v0, v0, Landroid/content/pm/ApplicationInfo;->enabled:Z

if-nez v0, :cond_7

const/4 v0, 0x3

goto :goto_1

:catch_3
move-exception v0

const-string v1, "GooglePlayServicesUtil"

const-string v3, "Google Play services missing when getting application info."

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

invoke-virtual {v0}, Landroid/content/pm/PackageManager$NameNotFoundException;->printStackTrace()V

move v0, v2

goto/16 :goto_1

:cond_7
move v0, v1

goto/16 :goto_1
.end method
Помогите
карма: 0

0
Редактировалось 3 раз(а), последний 2022-08-22 02:45:20