דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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 כשר - אתם בוחרים איזה אפליקציות יהיו!

מתוזמן נעוץ נעול הועבר אפליקציות להורדה
79 פוסטים 19 כותבים 1.6k צפיות 18 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מישהו12מ מישהו12

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

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

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

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

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

    C תגובה 1 תגובה אחרונה
    0
    • 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 כשנכנסים לעדכונים זה נותן לעדכן את כל האפליקציות המותקנות ולא רק מה שברשימה

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

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

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

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

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

                              בעיני, מעולה...

                              הבלוג שלי
                              https://aiv-dev.com/he-IL/

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

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

                                L מנותק
                                L מנותק
                                lilo159
                                כתב נערך לאחרונה על ידי
                                #76

                                @YOLEVI האם זה לא כך גם במעדכן אפליקציות?

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

                                  @YOLEVI האם זה לא כך גם במעדכן אפליקציות?

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

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

                                  @YOLEVI האם זה לא כך גם במעדכן אפליקציות?

                                  כן אבל חלק מהעניין פה זה שאני יוכל להחליט מה יוכלו לעדכן ומה לא
                                  למשל אם יהיה עדכון של וויז זה יחזיר דפדפן פנימי

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • W מנותק
                                    W מנותק
                                    world
                                    כתב נערך לאחרונה על ידי
                                    #78

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

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

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

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

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

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

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

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

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

                                      • התחברות

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

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