דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. אנדרואיד - כללי
  3. אפליקציות להורדה
  4. להורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!

להורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!

מתוזמן נעוץ נעול הועבר אפליקציות להורדה
74 פוסטים 18 כותבים 1.5k צפיות 17 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • Y YOLEVI

    @מישהו12 כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

    @lilo159 זה פרצה, כי זה אומר שא"T לשלב את זה בגרסאות כשרות, כי אז בן אדם גם אם הגרסא חסומה לגמרי והוא לא יכול לערוך - יכול לעשות מניפולציות על הרשת עם DNS וכדומה

    @lilo159 מה לגבי זה? תוקן?

    C מנותק
    C מנותק
    cfopuser
    כתב נערך לאחרונה על ידי
    #63

    @YOLEVI כן

    תגובה 1 תגובה אחרונה
    1
    • L lilo159

      303ace4b-2f91-4fe0-8806-4334becb11ae-image.png
      קודם כל תודה לד' יתברך, זה פרוייקט שחשבתי שיקח לי שבוע, וסיימתי ביום..
      זו האפליקציה המקורית של המעדכן אפליקציות הנודע לפני ש @jacobel640 ערך אותה.

      היתרונות כאן נראה לי ברורים, לא צריך להוריד APK, להעלות לשרת וכו', האפלקציות תמיד מעודכנות וכו'.

      את האפליקציה ערכתי עם AI Studio, והצלחתי להגיע למגבלה היומית..
      בעזרת ד' בלנ"ד מאוחר יותר אציג את השינויים בקוד.

      ישנו קובץ JSON שמאוחסן ברשת (את שלי שמתי בGITHUB), שמכיל את רשימת האפליקיצות המותרות, בעזרת ד' אני עובד על הממשק לעריכה נוחה.
      לחלופין, לבקשת @iosi-poli, אפשרי גם לאחסן את הרשימה לבנה בassets.
      עוד דבר, את האפליקציה תרגמתי עם AI סטודיו גם כן, אז מחילה אם יש מילים לא מובנות או משהו, דווחו ואתקן בלנ"ד.
      אני מביא כאן את ה"דוגמית", יש שם ארבע אפליקציות.
      להורדת האפליקציה
      לגרסה עם קובץ הassets
      קובץ הJSON אמור להראות כך:

      [
        "com.whatsapp",
        "com.tranzmate",
        "com.waze",
        "tfilon.tfilon"
      ]
      

      אפשר ליצור קובץ כזה בגיטהאב, ללחוץ על RAW, ואז להתעיק את הקישור.

      חפשו בMT מנג'ר את השורה הזאת:

      https://raw.githubusercontent.com/lilor159357/aurora-whitelist/refs/heads/main/whitelist.json
      

      ותחליפו אותה עם הקישור לJSON שלכם, ויש לכם חנות אפליקציות שאתם מחליטים איזה אפליקציות יהיו בה!

      לגרסה עם הקובץ בassets, פשוט לערוך את הקובץ whitelist.json.

      השינויים בספויילר:


      להוסיף בנתיב com/aurora/store
      את הclass:
      AuroraApp$2
      (ליד הקלאס AuroraApp)

      # classes.dex
      
      .class Lcom/aurora/store/AuroraApp$2;
      .super Ljava/lang/Object;
      
      # interfaces
      .implements Ljava/lang/Runnable;
      
      
      # annotations
      .annotation system Ldalvik/annotation/EnclosingMethod;
          value = Lcom/aurora/store/AuroraApp;->onCreate()V
      .end annotation
      
      .annotation system Ldalvik/annotation/InnerClass;
          accessFlags = 0x0
          name = null
      .end annotation
      
      
      # instance fields
      .field final synthetic this$0:Lcom/aurora/store/AuroraApp;
      
      
      # direct methods
      .method constructor <init>(Lcom/aurora/store/AuroraApp;)V
          .registers 2
      
          iput-object p1, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
      
          invoke-direct {p0}, Ljava/lang/Object;-><init>()V
      
          return-void
      .end method
      
      
      # virtual methods
      .method public run()V
          .registers 6
      
          :try_start_0
          new-instance v0, Ljava/net/URL;
      
          const-string v1, "https://raw.githubusercontent.com/lilor159357/aurora-whitelist/refs/heads/main/whitelist.json"
      
          invoke-direct {v0, v1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
      
          invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
      
          move-result-object v0
      
          check-cast v0, Ljava/net/HttpURLConnection;
      
          new-instance v1, Ljava/io/BufferedReader;
      
          new-instance v2, Ljava/io/InputStreamReader;
      
          invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
      
          move-result-object v0
      
          invoke-direct {v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
      
          invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
      
          new-instance v0, Ljava/lang/StringBuilder;
      
          invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
      
          :goto_20
          invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
      
          move-result-object v2
      
          if-eqz v2, :cond_2a
      
          invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
      
          goto :goto_20
      
          :cond_2a
          new-instance v1, Lorg/json/JSONArray;
      
          invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
      
          move-result-object v0
      
          invoke-direct {v1, v0}, Lorg/json/JSONArray;-><init>(Ljava/lang/String;)V
      
          sget-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
      
          invoke-interface {v0}, Ljava/util/List;->clear()V
      
          const/4 v0, 0x0
      
          :goto_39
          invoke-virtual {v1}, Lorg/json/JSONArray;->length()I
      
          move-result v2
      
          if-ge v0, v2, :cond_4b
      
          sget-object v2, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
      
          invoke-virtual {v1, v0}, Lorg/json/JSONArray;->getString(I)Ljava/lang/String;
      
          move-result-object v3
      
          invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
      
          add-int/lit8 v0, v0, 0x1
      
          goto :goto_39
          :try_end_4b
          .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4b} :catch_4c
      
          :cond_4b
          return-void
      
          :catch_4c
          move-exception v0
      
          const-string v1, "Whitelist"
      
          const-string v2, "Failed to load whitelist"
      
          invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
      
          return-void
      .end method
      

      אם אתם מעדיפים את הקובץ באפליציה עצמה (בassets)
      אז תשתמשו בקוד הזה בשביל AuroraApp$2:

      .class Lcom/aurora/store/AuroraApp$2;
      .super Ljava/lang/Object;
      .implements Ljava/lang/Runnable;
      
      # annotations
      .annotation system Ldalvik/annotation/EnclosingMethod; value = Lcom/aurora/store/AuroraApp;->onCreate()V .end annotation
      .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x0 name = null .end annotation
      
      # instance fields
      .field final synthetic this$0:Lcom/aurora/store/AuroraApp;
      
      # direct methods
      .method constructor <init>(Lcom/aurora/store/AuroraApp;)V
          .registers 2
          iput-object p1, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
          invoke-direct {p0}, Ljava/lang/Object;-><init>()V
          return-void
      .end method
      
      # virtual methods
      .method public run()V
          .registers 6
          :try_start_0
          iget-object v0, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
          invoke-virtual {v0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
          move-result-object v0
          const-string v1, "whitelist.json"
          invoke-virtual {v0, v1}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
          move-result-object v0
          new-instance v1, Ljava/io/BufferedReader;
          new-instance v2, Ljava/io/InputStreamReader;
          invoke-direct {v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
          invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
          new-instance v0, Ljava/lang/StringBuilder;
          invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
          :goto_1f
          invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
          move-result-object v2
          if-eqz v2, :cond_29
          invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
          goto :goto_1f
          :cond_29
          new-instance v1, Lorg/json/JSONArray;
          invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
          move-result-object v0
          invoke-direct {v1, v0}, Lorg/json/JSONArray;-><init>(Ljava/lang/String;)V
          sget-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
          invoke-interface {v0}, Ljava/util/List;->clear()V
          const/4 v0, 0x0
          :goto_39
          invoke-virtual {v1}, Lorg/json/JSONArray;->length()I
          move-result v2
          if-ge v0, v2, :cond_4d
          sget-object v2, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
          invoke-virtual {v1, v0}, Lorg/json/JSONArray;->getString(I)Ljava/lang/String;
          move-result-object v3
          invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
          add-int/lit8 v0, v0, 0x1
          goto :goto_39
          :cond_4d
          :try_end_4d
          .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4d} :catch_4e
          :goto_4e
          return-void
          :catch_4e
          move-exception v0
          const-string v1, "Whitelist"
          const-string v2, "Failed to load whitelist from assets"
          invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
          return-void
      .end method
      

      שינויים בתוך הקלאס AuroraApp (בנתיב com/aurora/store):

      להוסיף אחרי static fields #
      את זה:

      .field public static authorizedApps:Ljava/util/List;
          .annotation system Ldalvik/annotation/Signature;
              value = {
                  "Ljava/util/List<",
                  "Ljava/lang/String;",
                  ">;"
              }
          .end annotation
      .end field
      

      להוסיף בתוך onCreate
      לפני line 4. (אחרי ה-invoke-super)
      את זה:

          new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;
      
          invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
      
          sput-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
      
          new-instance v0, Ljava/lang/Thread;
      
          new-instance v1, Lcom/aurora/store/AuroraApp$2;
      
          invoke-direct {v1, p0}, Lcom/aurora/store/AuroraApp$2;-><init>(Lcom/aurora/store/AuroraApp;)V
      
          invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
      
          invoke-virtual {v0}, Ljava/lang/Thread;->start()V
      

      שינויים בקלאס MainActivity (בנתיב com/aurora/store):

      חסימת פתיחת קישורים לא מורשים:
      בתוך onCreate
      לפני line 15. (אחרי ה-invoke-super)

          invoke-virtual {p0}, Landroid/app/Activity;->getIntent()Landroid/content/Intent;
          move-result-object v0
          invoke-virtual {v0}, Landroid/content/Intent;->getData()Landroid/net/Uri;
          move-result-object v0
          if-eqz v0, :cond_3c
          const-string v1, "id"
          invoke-virtual {v0, v1}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;
          move-result-object v0
          if-eqz v0, :cond_3c
          sget-object v1, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
          const/4 v2, 0x1
          if-eqz v1, :cond_2c
          invoke-interface {v1, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
          move-result v0
          if-eqz v0, :cond_2c
          const/4 v2, 0x0
          :cond_2c
          if-eqz v2, :cond_3c
          const-string v0, "אפליקציה זו אינה מורשת"
          const/4 v1, 0x1
          invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
          move-result-object v0
          invoke-virtual {v0}, Landroid/widget/Toast;->show()V
          invoke-virtual {p0}, Landroid/app/Activity;->finish()V
          return-void
          :cond_3c
      

      הסתרת כפתור המשחקים:
      בתוך method public constructor <init>()V
      להחליף מline 39. עד לפני line 65.
      עם זה:

      .line 39
          const v1, 0x7f0902fa
      .line 42
          invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
      .line 45
          move-result-object v1
      .line 46
          const/4 v2, 0x2
      .line 49
          new-array v3, v2, [Ljava/lang/Integer;
      .line 52
          const/4 v4, 0x0
      .line 53
          aput-object v0, v3, v4
      .line 56
          const/4 v0, 0x1
      .line 57
          aput-object v1, v3, v0
      

      ובתוך onCreate
      להוסיף לפני line 148.
      את זה:

          invoke-virtual {v0}, Lcom/google/android/material/navigation/NavigationBarView;->getMenu()Landroid/view/Menu;
          move-result-object v5
          const v6, 0x7f090144
          invoke-interface {v5, v6}, Landroid/view/Menu;->removeItem(I)V
      

      שינויים בקלאס AppDetailsFragment (בנתיב com/aurora/store/view/ui/details):

      להוסיף בתוך method public final V
      לפני line 10.

      invoke-virtual {v0}, Lx4/a;->v0()LM2/a;
       move-result-object v3
       check-cast v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;
      
       #זה מסתיר את התגובות
       # Get the review layout binding from the main binding
       iget-object v4, v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;->layoutDetailsReview:Lcom/aurora/store/databinding/LayoutDetailsReviewBinding;
       # Get its root view and set visibility to GONE
       invoke-virtual {v4}, Lcom/aurora/store/databinding/LayoutDetailsReviewBinding;->getRoot()Landroid/view/View;
       move-result-object v4
       const/16 v5, 0x8
       invoke-virtual {v4, v5}, Landroid/view/View;->setVisibility(I)V
      
       #זה מסתיר את הצילו"מים בפרטי אפליקציה
       iget-object v6, v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;->layoutDetailDescription:Lcom/aurora/store/databinding/LayoutDetailsDescriptionBinding;
       # Get the EpoxyRecyclerView (which contains the screenshots) from the description layout binding
       iget-object v7, v6, Lcom/aurora/store/databinding/LayoutDetailsDescriptionBinding;->epoxyRecycler:Lcom/airbnb/epoxy/EpoxyRecyclerView;
       # Set its visibility to GONE
       const/16 v8, 0x8
       invoke-virtual {v7, v8}, Landroid/view/View;->setVisibility(I)V
      

      שינויים בקלאס StreamCluster (בנתיב com/aurora/gplayapi/data/models):
      להחליף את כל הmethod:
      getClusterAppList
      עם זה:

      .method public final getClusterAppList()Ljava/util/List;
      .registers 7
      	.annotation system Ldalvik/annotation/Signature;
      		value = {
      			"()Ljava/util/List<",
      			"Lcom/aurora/gplayapi/data/models/App;",
      			">;"
      		}
      	.end annotation
      
      	.prologue
      	.line 1
      	iget-object v0, p0, Lcom/aurora/gplayapi/data/models/StreamCluster;->clusterAppList:Ljava/util/List;
      
      	.line 2
      	sget-object v1, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
      
      	.line 3
      	if-eqz v1, :cond_31
      
      	invoke-interface {v1}, Ljava/util/List;->isEmpty()Z
      
      	move-result v2
      
      	if-eqz v2, :cond_d
      
      	goto :goto_31
      
      	.line 4
      	:cond_d
      	new-instance v2, Ljava/util/ArrayList;
      
      	invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
      
      	.line 5
      	invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
      
      	move-result-object v3
      
      	.line 6
      	:cond_16
      	:goto_16
      	invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
      
      	move-result v4
      
      	if-eqz v4, :cond_30
      
      	.line 7
      	invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
      
      	move-result-object v4
      
      	check-cast v4, Lcom/aurora/gplayapi/data/models/App;
      
      	.line 8
      	invoke-virtual {v4}, Lcom/aurora/gplayapi/data/models/App;->getPackageName()Ljava/lang/String;
      
      	move-result-object v5
      
      	.line 9
      	invoke-interface {v1, v5}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
      
      	move-result v5
      
      	if-eqz v5, :cond_16
      
      	.line 10
      	invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
      
      	goto :goto_16
      
      	.line 12
      	:cond_30
      	return-object v2
      
      	.line 13
      	:cond_31
      	:goto_31
      	new-instance v0, Ljava/util/ArrayList;
      
      	invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
      
      	return-object v0
      .end method
      

      Y מנותק
      Y מנותק
      YOLEVI
      כתב נערך לאחרונה על ידי
      #64

      @lilo159 כדאי להוסיף הערה בפוסט הראשון שלא כדאי להכניס אפליקציות כמו וויז ופנגו עם דפדפן פנימי כי גם אם התקינו בהתחלה גירסה ערוכה ללא דפדפן בעדכון יחזור הדפדפן...

      C תגובה 1 תגובה אחרונה
      0
      • Y YOLEVI

        @lilo159 כדאי להוסיף הערה בפוסט הראשון שלא כדאי להכניס אפליקציות כמו וויז ופנגו עם דפדפן פנימי כי גם אם התקינו בהתחלה גירסה ערוכה ללא דפדפן בעדכון יחזור הדפדפן...

        C מנותק
        C מנותק
        cfopuser
        כתב נערך לאחרונה על ידי
        #65

        @YOLEVI העדכון לא יעבוד כי החתימות שונות

        אבל כן סומכים על מי שיודע לערוך אפליקציות שידע על דפדפנים פנימיים

        Y תגובה 1 תגובה אחרונה
        0
        • C cfopuser

          @YOLEVI העדכון לא יעבוד כי החתימות שונות

          אבל כן סומכים על מי שיודע לערוך אפליקציות שידע על דפדפנים פנימיים

          Y מנותק
          Y מנותק
          YOLEVI
          כתב נערך לאחרונה על ידי
          #66

          @cfopuser בהתקנה דרך רוט זה כן מעדכן למרות שהחתימות שונות (כך בדקתי על המעדכן הרגיל)

          C תגובה 1 תגובה אחרונה
          1
          • Y YOLEVI

            @cfopuser בהתקנה דרך רוט זה כן מעדכן למרות שהחתימות שונות (כך בדקתי על המעדכן הרגיל)

            C מנותק
            C מנותק
            cfopuser
            כתב נערך לאחרונה על ידי
            #67

            @YOLEVI כי בהתקנה דרך רוט הוא פשוט דורס את הקבצים בהתקנה רגילה זה דרך מתקין חבילה ואז זה משווה חתימות לפני

            Y תגובה 1 תגובה אחרונה
            0
            • C cfopuser

              @YOLEVI כי בהתקנה דרך רוט הוא פשוט דורס את הקבצים בהתקנה רגילה זה דרך מתקין חבילה ואז זה משווה חתימות לפני

              Y מנותק
              Y מנותק
              YOLEVI
              כתב נערך לאחרונה על ידי
              #68

              @cfopuser כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

              @YOLEVI כי בהתקנה דרך רוט הוא פשוט דורס את הקבצים בהתקנה רגילה זה דרך מתקין חבילה ואז זה משווה חתימות לפני

              אז תכלס צריך להזהר מוויז וכדו' שלא לאפשר באפליקציה הזאת

              תגובה 1 תגובה אחרונה
              0
              • L lilo159

                303ace4b-2f91-4fe0-8806-4334becb11ae-image.png
                קודם כל תודה לד' יתברך, זה פרוייקט שחשבתי שיקח לי שבוע, וסיימתי ביום..
                זו האפליקציה המקורית של המעדכן אפליקציות הנודע לפני ש @jacobel640 ערך אותה.

                היתרונות כאן נראה לי ברורים, לא צריך להוריד APK, להעלות לשרת וכו', האפלקציות תמיד מעודכנות וכו'.

                את האפליקציה ערכתי עם AI Studio, והצלחתי להגיע למגבלה היומית..
                בעזרת ד' בלנ"ד מאוחר יותר אציג את השינויים בקוד.

                ישנו קובץ JSON שמאוחסן ברשת (את שלי שמתי בGITHUB), שמכיל את רשימת האפליקיצות המותרות, בעזרת ד' אני עובד על הממשק לעריכה נוחה.
                לחלופין, לבקשת @iosi-poli, אפשרי גם לאחסן את הרשימה לבנה בassets.
                עוד דבר, את האפליקציה תרגמתי עם AI סטודיו גם כן, אז מחילה אם יש מילים לא מובנות או משהו, דווחו ואתקן בלנ"ד.
                אני מביא כאן את ה"דוגמית", יש שם ארבע אפליקציות.
                להורדת האפליקציה
                לגרסה עם קובץ הassets
                קובץ הJSON אמור להראות כך:

                [
                  "com.whatsapp",
                  "com.tranzmate",
                  "com.waze",
                  "tfilon.tfilon"
                ]
                

                אפשר ליצור קובץ כזה בגיטהאב, ללחוץ על RAW, ואז להתעיק את הקישור.

                חפשו בMT מנג'ר את השורה הזאת:

                https://raw.githubusercontent.com/lilor159357/aurora-whitelist/refs/heads/main/whitelist.json
                

                ותחליפו אותה עם הקישור לJSON שלכם, ויש לכם חנות אפליקציות שאתם מחליטים איזה אפליקציות יהיו בה!

                לגרסה עם הקובץ בassets, פשוט לערוך את הקובץ whitelist.json.

                השינויים בספויילר:


                להוסיף בנתיב com/aurora/store
                את הclass:
                AuroraApp$2
                (ליד הקלאס AuroraApp)

                # classes.dex
                
                .class Lcom/aurora/store/AuroraApp$2;
                .super Ljava/lang/Object;
                
                # interfaces
                .implements Ljava/lang/Runnable;
                
                
                # annotations
                .annotation system Ldalvik/annotation/EnclosingMethod;
                    value = Lcom/aurora/store/AuroraApp;->onCreate()V
                .end annotation
                
                .annotation system Ldalvik/annotation/InnerClass;
                    accessFlags = 0x0
                    name = null
                .end annotation
                
                
                # instance fields
                .field final synthetic this$0:Lcom/aurora/store/AuroraApp;
                
                
                # direct methods
                .method constructor <init>(Lcom/aurora/store/AuroraApp;)V
                    .registers 2
                
                    iput-object p1, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
                
                    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
                
                    return-void
                .end method
                
                
                # virtual methods
                .method public run()V
                    .registers 6
                
                    :try_start_0
                    new-instance v0, Ljava/net/URL;
                
                    const-string v1, "https://raw.githubusercontent.com/lilor159357/aurora-whitelist/refs/heads/main/whitelist.json"
                
                    invoke-direct {v0, v1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
                
                    invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
                
                    move-result-object v0
                
                    check-cast v0, Ljava/net/HttpURLConnection;
                
                    new-instance v1, Ljava/io/BufferedReader;
                
                    new-instance v2, Ljava/io/InputStreamReader;
                
                    invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
                
                    move-result-object v0
                
                    invoke-direct {v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
                
                    invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
                
                    new-instance v0, Ljava/lang/StringBuilder;
                
                    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
                
                    :goto_20
                    invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
                
                    move-result-object v2
                
                    if-eqz v2, :cond_2a
                
                    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                
                    goto :goto_20
                
                    :cond_2a
                    new-instance v1, Lorg/json/JSONArray;
                
                    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
                
                    move-result-object v0
                
                    invoke-direct {v1, v0}, Lorg/json/JSONArray;-><init>(Ljava/lang/String;)V
                
                    sget-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                
                    invoke-interface {v0}, Ljava/util/List;->clear()V
                
                    const/4 v0, 0x0
                
                    :goto_39
                    invoke-virtual {v1}, Lorg/json/JSONArray;->length()I
                
                    move-result v2
                
                    if-ge v0, v2, :cond_4b
                
                    sget-object v2, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                
                    invoke-virtual {v1, v0}, Lorg/json/JSONArray;->getString(I)Ljava/lang/String;
                
                    move-result-object v3
                
                    invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
                
                    add-int/lit8 v0, v0, 0x1
                
                    goto :goto_39
                    :try_end_4b
                    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4b} :catch_4c
                
                    :cond_4b
                    return-void
                
                    :catch_4c
                    move-exception v0
                
                    const-string v1, "Whitelist"
                
                    const-string v2, "Failed to load whitelist"
                
                    invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
                
                    return-void
                .end method
                

                אם אתם מעדיפים את הקובץ באפליציה עצמה (בassets)
                אז תשתמשו בקוד הזה בשביל AuroraApp$2:

                .class Lcom/aurora/store/AuroraApp$2;
                .super Ljava/lang/Object;
                .implements Ljava/lang/Runnable;
                
                # annotations
                .annotation system Ldalvik/annotation/EnclosingMethod; value = Lcom/aurora/store/AuroraApp;->onCreate()V .end annotation
                .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x0 name = null .end annotation
                
                # instance fields
                .field final synthetic this$0:Lcom/aurora/store/AuroraApp;
                
                # direct methods
                .method constructor <init>(Lcom/aurora/store/AuroraApp;)V
                    .registers 2
                    iput-object p1, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
                    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
                    return-void
                .end method
                
                # virtual methods
                .method public run()V
                    .registers 6
                    :try_start_0
                    iget-object v0, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
                    invoke-virtual {v0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
                    move-result-object v0
                    const-string v1, "whitelist.json"
                    invoke-virtual {v0, v1}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
                    move-result-object v0
                    new-instance v1, Ljava/io/BufferedReader;
                    new-instance v2, Ljava/io/InputStreamReader;
                    invoke-direct {v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
                    invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
                    new-instance v0, Ljava/lang/StringBuilder;
                    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
                    :goto_1f
                    invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
                    move-result-object v2
                    if-eqz v2, :cond_29
                    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                    goto :goto_1f
                    :cond_29
                    new-instance v1, Lorg/json/JSONArray;
                    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
                    move-result-object v0
                    invoke-direct {v1, v0}, Lorg/json/JSONArray;-><init>(Ljava/lang/String;)V
                    sget-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                    invoke-interface {v0}, Ljava/util/List;->clear()V
                    const/4 v0, 0x0
                    :goto_39
                    invoke-virtual {v1}, Lorg/json/JSONArray;->length()I
                    move-result v2
                    if-ge v0, v2, :cond_4d
                    sget-object v2, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                    invoke-virtual {v1, v0}, Lorg/json/JSONArray;->getString(I)Ljava/lang/String;
                    move-result-object v3
                    invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
                    add-int/lit8 v0, v0, 0x1
                    goto :goto_39
                    :cond_4d
                    :try_end_4d
                    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4d} :catch_4e
                    :goto_4e
                    return-void
                    :catch_4e
                    move-exception v0
                    const-string v1, "Whitelist"
                    const-string v2, "Failed to load whitelist from assets"
                    invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
                    return-void
                .end method
                

                שינויים בתוך הקלאס AuroraApp (בנתיב com/aurora/store):

                להוסיף אחרי static fields #
                את זה:

                .field public static authorizedApps:Ljava/util/List;
                    .annotation system Ldalvik/annotation/Signature;
                        value = {
                            "Ljava/util/List<",
                            "Ljava/lang/String;",
                            ">;"
                        }
                    .end annotation
                .end field
                

                להוסיף בתוך onCreate
                לפני line 4. (אחרי ה-invoke-super)
                את זה:

                    new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;
                
                    invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
                
                    sput-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                
                    new-instance v0, Ljava/lang/Thread;
                
                    new-instance v1, Lcom/aurora/store/AuroraApp$2;
                
                    invoke-direct {v1, p0}, Lcom/aurora/store/AuroraApp$2;-><init>(Lcom/aurora/store/AuroraApp;)V
                
                    invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
                
                    invoke-virtual {v0}, Ljava/lang/Thread;->start()V
                

                שינויים בקלאס MainActivity (בנתיב com/aurora/store):

                חסימת פתיחת קישורים לא מורשים:
                בתוך onCreate
                לפני line 15. (אחרי ה-invoke-super)

                    invoke-virtual {p0}, Landroid/app/Activity;->getIntent()Landroid/content/Intent;
                    move-result-object v0
                    invoke-virtual {v0}, Landroid/content/Intent;->getData()Landroid/net/Uri;
                    move-result-object v0
                    if-eqz v0, :cond_3c
                    const-string v1, "id"
                    invoke-virtual {v0, v1}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;
                    move-result-object v0
                    if-eqz v0, :cond_3c
                    sget-object v1, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                    const/4 v2, 0x1
                    if-eqz v1, :cond_2c
                    invoke-interface {v1, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
                    move-result v0
                    if-eqz v0, :cond_2c
                    const/4 v2, 0x0
                    :cond_2c
                    if-eqz v2, :cond_3c
                    const-string v0, "אפליקציה זו אינה מורשת"
                    const/4 v1, 0x1
                    invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
                    move-result-object v0
                    invoke-virtual {v0}, Landroid/widget/Toast;->show()V
                    invoke-virtual {p0}, Landroid/app/Activity;->finish()V
                    return-void
                    :cond_3c
                

                הסתרת כפתור המשחקים:
                בתוך method public constructor <init>()V
                להחליף מline 39. עד לפני line 65.
                עם זה:

                .line 39
                    const v1, 0x7f0902fa
                .line 42
                    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
                .line 45
                    move-result-object v1
                .line 46
                    const/4 v2, 0x2
                .line 49
                    new-array v3, v2, [Ljava/lang/Integer;
                .line 52
                    const/4 v4, 0x0
                .line 53
                    aput-object v0, v3, v4
                .line 56
                    const/4 v0, 0x1
                .line 57
                    aput-object v1, v3, v0
                

                ובתוך onCreate
                להוסיף לפני line 148.
                את זה:

                    invoke-virtual {v0}, Lcom/google/android/material/navigation/NavigationBarView;->getMenu()Landroid/view/Menu;
                    move-result-object v5
                    const v6, 0x7f090144
                    invoke-interface {v5, v6}, Landroid/view/Menu;->removeItem(I)V
                

                שינויים בקלאס AppDetailsFragment (בנתיב com/aurora/store/view/ui/details):

                להוסיף בתוך method public final V
                לפני line 10.

                invoke-virtual {v0}, Lx4/a;->v0()LM2/a;
                 move-result-object v3
                 check-cast v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;
                
                 #זה מסתיר את התגובות
                 # Get the review layout binding from the main binding
                 iget-object v4, v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;->layoutDetailsReview:Lcom/aurora/store/databinding/LayoutDetailsReviewBinding;
                 # Get its root view and set visibility to GONE
                 invoke-virtual {v4}, Lcom/aurora/store/databinding/LayoutDetailsReviewBinding;->getRoot()Landroid/view/View;
                 move-result-object v4
                 const/16 v5, 0x8
                 invoke-virtual {v4, v5}, Landroid/view/View;->setVisibility(I)V
                
                 #זה מסתיר את הצילו"מים בפרטי אפליקציה
                 iget-object v6, v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;->layoutDetailDescription:Lcom/aurora/store/databinding/LayoutDetailsDescriptionBinding;
                 # Get the EpoxyRecyclerView (which contains the screenshots) from the description layout binding
                 iget-object v7, v6, Lcom/aurora/store/databinding/LayoutDetailsDescriptionBinding;->epoxyRecycler:Lcom/airbnb/epoxy/EpoxyRecyclerView;
                 # Set its visibility to GONE
                 const/16 v8, 0x8
                 invoke-virtual {v7, v8}, Landroid/view/View;->setVisibility(I)V
                

                שינויים בקלאס StreamCluster (בנתיב com/aurora/gplayapi/data/models):
                להחליף את כל הmethod:
                getClusterAppList
                עם זה:

                .method public final getClusterAppList()Ljava/util/List;
                .registers 7
                	.annotation system Ldalvik/annotation/Signature;
                		value = {
                			"()Ljava/util/List<",
                			"Lcom/aurora/gplayapi/data/models/App;",
                			">;"
                		}
                	.end annotation
                
                	.prologue
                	.line 1
                	iget-object v0, p0, Lcom/aurora/gplayapi/data/models/StreamCluster;->clusterAppList:Ljava/util/List;
                
                	.line 2
                	sget-object v1, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                
                	.line 3
                	if-eqz v1, :cond_31
                
                	invoke-interface {v1}, Ljava/util/List;->isEmpty()Z
                
                	move-result v2
                
                	if-eqz v2, :cond_d
                
                	goto :goto_31
                
                	.line 4
                	:cond_d
                	new-instance v2, Ljava/util/ArrayList;
                
                	invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
                
                	.line 5
                	invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
                
                	move-result-object v3
                
                	.line 6
                	:cond_16
                	:goto_16
                	invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
                
                	move-result v4
                
                	if-eqz v4, :cond_30
                
                	.line 7
                	invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
                
                	move-result-object v4
                
                	check-cast v4, Lcom/aurora/gplayapi/data/models/App;
                
                	.line 8
                	invoke-virtual {v4}, Lcom/aurora/gplayapi/data/models/App;->getPackageName()Ljava/lang/String;
                
                	move-result-object v5
                
                	.line 9
                	invoke-interface {v1, v5}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
                
                	move-result v5
                
                	if-eqz v5, :cond_16
                
                	.line 10
                	invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
                
                	goto :goto_16
                
                	.line 12
                	:cond_30
                	return-object v2
                
                	.line 13
                	:cond_31
                	:goto_31
                	new-instance v0, Ljava/util/ArrayList;
                
                	invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
                
                	return-object v0
                .end method
                

                Y מנותק
                Y מנותק
                YOLEVI
                כתב נערך לאחרונה על ידי
                #69

                @lilo159 כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                חפשו בMT מנג'ר את השורה הזאת:

                באיזה קובץ בדיוק?

                שניאור שמחש תגובה 1 תגובה אחרונה
                0
                • Y YOLEVI

                  @lilo159 כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                  חפשו בMT מנג'ר את השורה הזאת:

                  באיזה קובץ בדיוק?

                  שניאור שמחש מנותק
                  שניאור שמחש מנותק
                  שניאור שמח
                  מדריכים עימוד
                  כתב נערך לאחרונה על ידי
                  #70

                  @YOLEVI כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                  @lilo159 כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                  חפשו בMT מנג'ר את השורה הזאת:

                  באיזה קובץ בדיוק?

                  אאל״ט בסמיילי ויש לך תוצאה אחת

                  "אם לא תנסה, איך תדע?"

                  Y תגובה 1 תגובה אחרונה
                  0
                  • שניאור שמחש שניאור שמח

                    @YOLEVI כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                    @lilo159 כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                    חפשו בMT מנג'ר את השורה הזאת:

                    באיזה קובץ בדיוק?

                    אאל״ט בסמיילי ויש לך תוצאה אחת

                    Y מנותק
                    Y מנותק
                    YOLEVI
                    כתב נערך לאחרונה על ידי YOLEVI
                    #71

                    @שניאור-שמח חיפשתי כבר, לא נתן לי שום תוצאה

                    שניאור שמחש תגובה 1 תגובה אחרונה
                    0
                    • Y YOLEVI

                      @שניאור-שמח חיפשתי כבר, לא נתן לי שום תוצאה

                      שניאור שמחש מנותק
                      שניאור שמחש מנותק
                      שניאור שמח
                      מדריכים עימוד
                      כתב נערך לאחרונה על ידי שניאור שמח
                      #72

                      @YOLEVI כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                      @שניאור-שמח חיפשתי, לא נתן לי שום תוצאה

                      מוזר, לי זה עבד
                      תבדוק שוב, כמובן באפליקציה שהוא העלה ולא המקורי

                      "אם לא תנסה, איך תדע?"

                      Y תגובה 1 תגובה אחרונה
                      1
                      • שניאור שמחש שניאור שמח

                        @YOLEVI כתב בלהורדה | aurora store כשר - אתם בוחרים איזה אפליקציות יהיו!:

                        @שניאור-שמח חיפשתי, לא נתן לי שום תוצאה

                        מוזר, לי זה עבד
                        תבדוק שוב, כמובן באפליקציה שהוא העלה ולא המקורי

                        Y מנותק
                        Y מנותק
                        YOLEVI
                        כתב נערך לאחרונה על ידי
                        #73

                        @שניאור-שמח הורדתי מחדש ועבד...
                        אולי בטעות הורדתי לםני זה את הגרסא השנייה

                        תגובה 1 תגובה אחרונה
                        0
                        • נ נחום גמזו התייחס לנושא זה
                        • L lilo159

                          303ace4b-2f91-4fe0-8806-4334becb11ae-image.png
                          קודם כל תודה לד' יתברך, זה פרוייקט שחשבתי שיקח לי שבוע, וסיימתי ביום..
                          זו האפליקציה המקורית של המעדכן אפליקציות הנודע לפני ש @jacobel640 ערך אותה.

                          היתרונות כאן נראה לי ברורים, לא צריך להוריד APK, להעלות לשרת וכו', האפלקציות תמיד מעודכנות וכו'.

                          את האפליקציה ערכתי עם AI Studio, והצלחתי להגיע למגבלה היומית..
                          בעזרת ד' בלנ"ד מאוחר יותר אציג את השינויים בקוד.

                          ישנו קובץ JSON שמאוחסן ברשת (את שלי שמתי בGITHUB), שמכיל את רשימת האפליקיצות המותרות, בעזרת ד' אני עובד על הממשק לעריכה נוחה.
                          לחלופין, לבקשת @iosi-poli, אפשרי גם לאחסן את הרשימה לבנה בassets.
                          עוד דבר, את האפליקציה תרגמתי עם AI סטודיו גם כן, אז מחילה אם יש מילים לא מובנות או משהו, דווחו ואתקן בלנ"ד.
                          אני מביא כאן את ה"דוגמית", יש שם ארבע אפליקציות.
                          להורדת האפליקציה
                          לגרסה עם קובץ הassets
                          קובץ הJSON אמור להראות כך:

                          [
                            "com.whatsapp",
                            "com.tranzmate",
                            "com.waze",
                            "tfilon.tfilon"
                          ]
                          

                          אפשר ליצור קובץ כזה בגיטהאב, ללחוץ על RAW, ואז להתעיק את הקישור.

                          חפשו בMT מנג'ר את השורה הזאת:

                          https://raw.githubusercontent.com/lilor159357/aurora-whitelist/refs/heads/main/whitelist.json
                          

                          ותחליפו אותה עם הקישור לJSON שלכם, ויש לכם חנות אפליקציות שאתם מחליטים איזה אפליקציות יהיו בה!

                          לגרסה עם הקובץ בassets, פשוט לערוך את הקובץ whitelist.json.

                          השינויים בספויילר:


                          להוסיף בנתיב com/aurora/store
                          את הclass:
                          AuroraApp$2
                          (ליד הקלאס AuroraApp)

                          # classes.dex
                          
                          .class Lcom/aurora/store/AuroraApp$2;
                          .super Ljava/lang/Object;
                          
                          # interfaces
                          .implements Ljava/lang/Runnable;
                          
                          
                          # annotations
                          .annotation system Ldalvik/annotation/EnclosingMethod;
                              value = Lcom/aurora/store/AuroraApp;->onCreate()V
                          .end annotation
                          
                          .annotation system Ldalvik/annotation/InnerClass;
                              accessFlags = 0x0
                              name = null
                          .end annotation
                          
                          
                          # instance fields
                          .field final synthetic this$0:Lcom/aurora/store/AuroraApp;
                          
                          
                          # direct methods
                          .method constructor <init>(Lcom/aurora/store/AuroraApp;)V
                              .registers 2
                          
                              iput-object p1, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
                          
                              invoke-direct {p0}, Ljava/lang/Object;-><init>()V
                          
                              return-void
                          .end method
                          
                          
                          # virtual methods
                          .method public run()V
                              .registers 6
                          
                              :try_start_0
                              new-instance v0, Ljava/net/URL;
                          
                              const-string v1, "https://raw.githubusercontent.com/lilor159357/aurora-whitelist/refs/heads/main/whitelist.json"
                          
                              invoke-direct {v0, v1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
                          
                              invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
                          
                              move-result-object v0
                          
                              check-cast v0, Ljava/net/HttpURLConnection;
                          
                              new-instance v1, Ljava/io/BufferedReader;
                          
                              new-instance v2, Ljava/io/InputStreamReader;
                          
                              invoke-virtual {v0}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
                          
                              move-result-object v0
                          
                              invoke-direct {v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
                          
                              invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
                          
                              new-instance v0, Ljava/lang/StringBuilder;
                          
                              invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
                          
                              :goto_20
                              invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
                          
                              move-result-object v2
                          
                              if-eqz v2, :cond_2a
                          
                              invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                          
                              goto :goto_20
                          
                              :cond_2a
                              new-instance v1, Lorg/json/JSONArray;
                          
                              invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
                          
                              move-result-object v0
                          
                              invoke-direct {v1, v0}, Lorg/json/JSONArray;-><init>(Ljava/lang/String;)V
                          
                              sget-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                          
                              invoke-interface {v0}, Ljava/util/List;->clear()V
                          
                              const/4 v0, 0x0
                          
                              :goto_39
                              invoke-virtual {v1}, Lorg/json/JSONArray;->length()I
                          
                              move-result v2
                          
                              if-ge v0, v2, :cond_4b
                          
                              sget-object v2, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                          
                              invoke-virtual {v1, v0}, Lorg/json/JSONArray;->getString(I)Ljava/lang/String;
                          
                              move-result-object v3
                          
                              invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
                          
                              add-int/lit8 v0, v0, 0x1
                          
                              goto :goto_39
                              :try_end_4b
                              .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4b} :catch_4c
                          
                              :cond_4b
                              return-void
                          
                              :catch_4c
                              move-exception v0
                          
                              const-string v1, "Whitelist"
                          
                              const-string v2, "Failed to load whitelist"
                          
                              invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
                          
                              return-void
                          .end method
                          

                          אם אתם מעדיפים את הקובץ באפליציה עצמה (בassets)
                          אז תשתמשו בקוד הזה בשביל AuroraApp$2:

                          .class Lcom/aurora/store/AuroraApp$2;
                          .super Ljava/lang/Object;
                          .implements Ljava/lang/Runnable;
                          
                          # annotations
                          .annotation system Ldalvik/annotation/EnclosingMethod; value = Lcom/aurora/store/AuroraApp;->onCreate()V .end annotation
                          .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x0 name = null .end annotation
                          
                          # instance fields
                          .field final synthetic this$0:Lcom/aurora/store/AuroraApp;
                          
                          # direct methods
                          .method constructor <init>(Lcom/aurora/store/AuroraApp;)V
                              .registers 2
                              iput-object p1, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
                              invoke-direct {p0}, Ljava/lang/Object;-><init>()V
                              return-void
                          .end method
                          
                          # virtual methods
                          .method public run()V
                              .registers 6
                              :try_start_0
                              iget-object v0, p0, Lcom/aurora/store/AuroraApp$2;->this$0:Lcom/aurora/store/AuroraApp;
                              invoke-virtual {v0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
                              move-result-object v0
                              const-string v1, "whitelist.json"
                              invoke-virtual {v0, v1}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
                              move-result-object v0
                              new-instance v1, Ljava/io/BufferedReader;
                              new-instance v2, Ljava/io/InputStreamReader;
                              invoke-direct {v2, v0}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
                              invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
                              new-instance v0, Ljava/lang/StringBuilder;
                              invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
                              :goto_1f
                              invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
                              move-result-object v2
                              if-eqz v2, :cond_29
                              invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                              goto :goto_1f
                              :cond_29
                              new-instance v1, Lorg/json/JSONArray;
                              invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
                              move-result-object v0
                              invoke-direct {v1, v0}, Lorg/json/JSONArray;-><init>(Ljava/lang/String;)V
                              sget-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                              invoke-interface {v0}, Ljava/util/List;->clear()V
                              const/4 v0, 0x0
                              :goto_39
                              invoke-virtual {v1}, Lorg/json/JSONArray;->length()I
                              move-result v2
                              if-ge v0, v2, :cond_4d
                              sget-object v2, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                              invoke-virtual {v1, v0}, Lorg/json/JSONArray;->getString(I)Ljava/lang/String;
                              move-result-object v3
                              invoke-interface {v2, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
                              add-int/lit8 v0, v0, 0x1
                              goto :goto_39
                              :cond_4d
                              :try_end_4d
                              .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4d} :catch_4e
                              :goto_4e
                              return-void
                              :catch_4e
                              move-exception v0
                              const-string v1, "Whitelist"
                              const-string v2, "Failed to load whitelist from assets"
                              invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
                              return-void
                          .end method
                          

                          שינויים בתוך הקלאס AuroraApp (בנתיב com/aurora/store):

                          להוסיף אחרי static fields #
                          את זה:

                          .field public static authorizedApps:Ljava/util/List;
                              .annotation system Ldalvik/annotation/Signature;
                                  value = {
                                      "Ljava/util/List<",
                                      "Ljava/lang/String;",
                                      ">;"
                                  }
                              .end annotation
                          .end field
                          

                          להוסיף בתוך onCreate
                          לפני line 4. (אחרי ה-invoke-super)
                          את זה:

                              new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;
                          
                              invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
                          
                              sput-object v0, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                          
                              new-instance v0, Ljava/lang/Thread;
                          
                              new-instance v1, Lcom/aurora/store/AuroraApp$2;
                          
                              invoke-direct {v1, p0}, Lcom/aurora/store/AuroraApp$2;-><init>(Lcom/aurora/store/AuroraApp;)V
                          
                              invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
                          
                              invoke-virtual {v0}, Ljava/lang/Thread;->start()V
                          

                          שינויים בקלאס MainActivity (בנתיב com/aurora/store):

                          חסימת פתיחת קישורים לא מורשים:
                          בתוך onCreate
                          לפני line 15. (אחרי ה-invoke-super)

                              invoke-virtual {p0}, Landroid/app/Activity;->getIntent()Landroid/content/Intent;
                              move-result-object v0
                              invoke-virtual {v0}, Landroid/content/Intent;->getData()Landroid/net/Uri;
                              move-result-object v0
                              if-eqz v0, :cond_3c
                              const-string v1, "id"
                              invoke-virtual {v0, v1}, Landroid/net/Uri;->getQueryParameter(Ljava/lang/String;)Ljava/lang/String;
                              move-result-object v0
                              if-eqz v0, :cond_3c
                              sget-object v1, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                              const/4 v2, 0x1
                              if-eqz v1, :cond_2c
                              invoke-interface {v1, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
                              move-result v0
                              if-eqz v0, :cond_2c
                              const/4 v2, 0x0
                              :cond_2c
                              if-eqz v2, :cond_3c
                              const-string v0, "אפליקציה זו אינה מורשת"
                              const/4 v1, 0x1
                              invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
                              move-result-object v0
                              invoke-virtual {v0}, Landroid/widget/Toast;->show()V
                              invoke-virtual {p0}, Landroid/app/Activity;->finish()V
                              return-void
                              :cond_3c
                          

                          הסתרת כפתור המשחקים:
                          בתוך method public constructor <init>()V
                          להחליף מline 39. עד לפני line 65.
                          עם זה:

                          .line 39
                              const v1, 0x7f0902fa
                          .line 42
                              invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
                          .line 45
                              move-result-object v1
                          .line 46
                              const/4 v2, 0x2
                          .line 49
                              new-array v3, v2, [Ljava/lang/Integer;
                          .line 52
                              const/4 v4, 0x0
                          .line 53
                              aput-object v0, v3, v4
                          .line 56
                              const/4 v0, 0x1
                          .line 57
                              aput-object v1, v3, v0
                          

                          ובתוך onCreate
                          להוסיף לפני line 148.
                          את זה:

                              invoke-virtual {v0}, Lcom/google/android/material/navigation/NavigationBarView;->getMenu()Landroid/view/Menu;
                              move-result-object v5
                              const v6, 0x7f090144
                              invoke-interface {v5, v6}, Landroid/view/Menu;->removeItem(I)V
                          

                          שינויים בקלאס AppDetailsFragment (בנתיב com/aurora/store/view/ui/details):

                          להוסיף בתוך method public final V
                          לפני line 10.

                          invoke-virtual {v0}, Lx4/a;->v0()LM2/a;
                           move-result-object v3
                           check-cast v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;
                          
                           #זה מסתיר את התגובות
                           # Get the review layout binding from the main binding
                           iget-object v4, v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;->layoutDetailsReview:Lcom/aurora/store/databinding/LayoutDetailsReviewBinding;
                           # Get its root view and set visibility to GONE
                           invoke-virtual {v4}, Lcom/aurora/store/databinding/LayoutDetailsReviewBinding;->getRoot()Landroid/view/View;
                           move-result-object v4
                           const/16 v5, 0x8
                           invoke-virtual {v4, v5}, Landroid/view/View;->setVisibility(I)V
                          
                           #זה מסתיר את הצילו"מים בפרטי אפליקציה
                           iget-object v6, v3, Lcom/aurora/store/databinding/FragmentDetailsBinding;->layoutDetailDescription:Lcom/aurora/store/databinding/LayoutDetailsDescriptionBinding;
                           # Get the EpoxyRecyclerView (which contains the screenshots) from the description layout binding
                           iget-object v7, v6, Lcom/aurora/store/databinding/LayoutDetailsDescriptionBinding;->epoxyRecycler:Lcom/airbnb/epoxy/EpoxyRecyclerView;
                           # Set its visibility to GONE
                           const/16 v8, 0x8
                           invoke-virtual {v7, v8}, Landroid/view/View;->setVisibility(I)V
                          

                          שינויים בקלאס StreamCluster (בנתיב com/aurora/gplayapi/data/models):
                          להחליף את כל הmethod:
                          getClusterAppList
                          עם זה:

                          .method public final getClusterAppList()Ljava/util/List;
                          .registers 7
                          	.annotation system Ldalvik/annotation/Signature;
                          		value = {
                          			"()Ljava/util/List<",
                          			"Lcom/aurora/gplayapi/data/models/App;",
                          			">;"
                          		}
                          	.end annotation
                          
                          	.prologue
                          	.line 1
                          	iget-object v0, p0, Lcom/aurora/gplayapi/data/models/StreamCluster;->clusterAppList:Ljava/util/List;
                          
                          	.line 2
                          	sget-object v1, Lcom/aurora/store/AuroraApp;->authorizedApps:Ljava/util/List;
                          
                          	.line 3
                          	if-eqz v1, :cond_31
                          
                          	invoke-interface {v1}, Ljava/util/List;->isEmpty()Z
                          
                          	move-result v2
                          
                          	if-eqz v2, :cond_d
                          
                          	goto :goto_31
                          
                          	.line 4
                          	:cond_d
                          	new-instance v2, Ljava/util/ArrayList;
                          
                          	invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
                          
                          	.line 5
                          	invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
                          
                          	move-result-object v3
                          
                          	.line 6
                          	:cond_16
                          	:goto_16
                          	invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
                          
                          	move-result v4
                          
                          	if-eqz v4, :cond_30
                          
                          	.line 7
                          	invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
                          
                          	move-result-object v4
                          
                          	check-cast v4, Lcom/aurora/gplayapi/data/models/App;
                          
                          	.line 8
                          	invoke-virtual {v4}, Lcom/aurora/gplayapi/data/models/App;->getPackageName()Ljava/lang/String;
                          
                          	move-result-object v5
                          
                          	.line 9
                          	invoke-interface {v1, v5}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
                          
                          	move-result v5
                          
                          	if-eqz v5, :cond_16
                          
                          	.line 10
                          	invoke-interface {v2, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
                          
                          	goto :goto_16
                          
                          	.line 12
                          	:cond_30
                          	return-object v2
                          
                          	.line 13
                          	:cond_31
                          	:goto_31
                          	new-instance v0, Ljava/util/ArrayList;
                          
                          	invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
                          
                          	return-object v0
                          .end method
                          

                          Y מנותק
                          Y מנותק
                          YOLEVI
                          כתב נערך לאחרונה על ידי
                          #74

                          @lilo159 כשנכנסים לעדכונים זה נותן לעדכן את כל האפליקציות המותקנות ולא רק מה שברשימה

                          תגובה 1 תגובה אחרונה
                          0

                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • חוקי הפורום
                          • פופולרי
                          • לא נפתר
                          • משתמשים
                          • חיפוש גוגל בפורום
                          • צור קשר