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