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

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

    @lilo159
    רק כדי לוודא
    החנות תוכל הן לעדכן כל האפלי' המותקנות במכשיר רגיל ללא רוט וגם יהיה בה מנוע חיפוש אפלי' להתקנה שהרשימת אפלי' תהיה מוגבלת רק למה שאני רוצה ע"י שינוי ועריכת הZIP ע"י שמות חבילה של האפלי' הרצויות?
    נ.ב אז עשית משהו כמו זה?
    https://mitmachim.top/topic/75261/שיתוף-חנות-אפליקציות-כשרה-משוכללת-מאד-jstore
    בחינם?

    .

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

      @7716508 אני מתלבט אם לקרוא לזה פרצה, כי למשתמש הפשוט לא אמורה להיות גישה לעריכת האפליקציה, ובפשטות הוא יכול גם למחוק את כל השינויים שעשיתי...

      7 מנותק
      7 מנותק
      7716508
      כתב נערך לאחרונה על ידי
      #26

      @lilo159 ברור שפרצה
      שמת מדריך איך לערוך...

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

        @מישהו12 זה https

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

        @cfopuser
        א. הלינק שלו, אבל אם בונה גרסא ישנה את זה לhttp?
        ב. גם בhttp אפשר לעשות מינפולציות על הדומיין (גם אם לא על הURL המלא) וכאן זה לכאורה מספיק

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

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

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

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

          @מישהו12 טוב, אז לכאורה אני צריך להוסיף הכרחה של קבלת הקובץ, ובאם הוא לא קיים (כי חסמו את הגישה לקישור נגיד) אז הוא פשוט לא יציג כלום.

          תגובה 1 תגובה אחרונה
          2
          • 7 7716508

            @lilo159 ברור שפרצה
            שמת מדריך איך לערוך...

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

            @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

            אבל אם בונה גרסא ישנה את זה לhttp?

            אבל זה לא המקרה

            מישהו12מ תגובה 1 תגובה אחרונה
            1
            • C cfopuser

              @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

              אבל אם בונה גרסא ישנה את זה לhttp?

              אבל זה לא המקרה

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

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

              @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

              בודאי שאפשר עם DNS להשפיע גם על HTTPS.

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

              אבל זה לא המקרה

              למה לא?

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

              צדיק תמיםצ תגובה 1 תגובה אחרונה
              0
              • 7 7716508

                @lilo159 אני שמתי קישור שגוי ונפתח בלי הגבלה 🫣

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

                @7716508 תודה רבה שהפנת את תשומת ליבי לכך.

                תגובה 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
                  

                  נחמן פלחנ מנותק
                  נחמן פלחנ מנותק
                  נחמן פלח
                  כתב נערך לאחרונה על ידי
                  #32

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

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

                  אשמח

                  היי

                  תגובה 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
                    

                    נחמן פלחנ מנותק
                    נחמן פלחנ מנותק
                    נחמן פלח
                    כתב נערך לאחרונה על ידי נחמן פלח
                    #33

                    @lilo159 1

                    1. האפליקציה אצלי באנגלית
                    2. היא לא מופיעה במסך הבית
                      1001177451.jpg

                    היי

                    L 2 תגובות תגובה אחרונה
                    0
                    • נחמן פלחנ נחמן פלח

                      @lilo159 1

                      1. האפליקציה אצלי באנגלית
                      2. היא לא מופיעה במסך הבית
                        1001177451.jpg
                      L מנותק
                      L מנותק
                      lilo159
                      כתב נערך לאחרונה על ידי
                      #34

                      @נחמן-פלח אתה צודק, אני בטעות העליתי הגרסה לפני שתרגמתי.

                      תגובה 1 תגובה אחרונה
                      0
                      • נחמן פלחנ נחמן פלח

                        @lilo159 1

                        1. האפליקציה אצלי באנגלית
                        2. היא לא מופיעה במסך הבית
                          1001177451.jpg
                        L מנותק
                        L מנותק
                        lilo159
                        כתב נערך לאחרונה על ידי
                        #35

                        @נחמן-פלח העלתי שוב

                        תגובה 1 תגובה אחרונה
                        2
                        • ה מנותק
                          ה מנותק
                          השם מלך12
                          כתב נערך לאחרונה על ידי
                          #36

                          תמונה של WhatsApp‏ 2025-08-22 בשעה 00.06.33_79996f77.jpg זה מראה לא שאין ישומים... איך לסדר ? טלפון f21

                          L תגובה 1 תגובה אחרונה
                          0
                          • ה השם מלך12

                            תמונה של WhatsApp‏ 2025-08-22 בשעה 00.06.33_79996f77.jpg זה מראה לא שאין ישומים... איך לסדר ? טלפון f21

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

                            @השם-מלך12 זה כנראה כי חסום לך הכתובת play.google.com

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

                              @השם-מלך12 זה כנראה כי חסום לך הכתובת play.google.com

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

                              @lilo159 יש דרך לסדר?

                              תגובה 1 תגובה אחרונה
                              0
                              • 7 7716508

                                @lilo159 אני שמתי קישור שגוי ונפתח בלי הגבלה 🫣

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

                                @7716508 עדכנתי את האפליקציה, אין כעת בעיה זו.

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

                                  @7716508 עדכנתי את האפליקציה, אין כעת בעיה זו.

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

                                  @lilo159
                                  אני פתחתי הבוקר לתומי את החנות שלך
                                  והיה שמה את כל האפליקציות
                                  פשוט הכל!!! כולל אינסטגרם וכדו'
                                  (ולא לא שיניתי לקישור שגוי ולא עשיתי שום דבר אחר)
                                  אז סגרתי ופתחתי מחדש ונעלם הכל
                                  וחזר להיות כמו אתמול רק מה שאתה ששמת (מוביט וכו')

                                  אולי כדאי שעד שתסדר את זה תסיר את הקישור מהנושא שלא יוכלו להוריד אותה כל עוד יש פרצות

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

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

                                    @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

                                    בודאי שאפשר עם DNS להשפיע גם על HTTPS.

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

                                    אבל זה לא המקרה

                                    למה לא?

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

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

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

                                    @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

                                    בודאי שאפשר עם DNS להשפיע גם על HTTPS.

                                    אי אפשר כי לשרת האחר לא תהיה תעודה תקפה

                                    רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                                    C מישהו12מ 2 תגובות תגובה אחרונה
                                    0
                                    • צדיק תמיםצ צדיק תמים

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

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

                                      @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

                                      בודאי שאפשר עם DNS להשפיע גם על HTTPS.

                                      אי אפשר כי לשרת האחר לא תהיה תעודה תקפה

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

                                      @צדיק-תמים הוא שאמרתי

                                      תגובה 1 תגובה אחרונה
                                      1
                                      • צדיק תמיםצ צדיק תמים

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

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

                                        @7716508 וכול מה שאני בא לומר שעל https אי אפשר לעשות mitm וגם אי אפשר לערוך את dns

                                        בודאי שאפשר עם DNS להשפיע גם על HTTPS.

                                        אי אפשר כי לשרת האחר לא תהיה תעודה תקפה

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

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

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

                                        תגובה 1 תגובה אחרונה
                                        1
                                        • נ נוחעם FM

                                          @lilo159
                                          אני פתחתי הבוקר לתומי את החנות שלך
                                          והיה שמה את כל האפליקציות
                                          פשוט הכל!!! כולל אינסטגרם וכדו'
                                          (ולא לא שיניתי לקישור שגוי ולא עשיתי שום דבר אחר)
                                          אז סגרתי ופתחתי מחדש ונעלם הכל
                                          וחזר להיות כמו אתמול רק מה שאתה ששמת (מוביט וכו')

                                          אולי כדאי שעד שתסדר את זה תסיר את הקישור מהנושא שלא יוכלו להוריד אותה כל עוד יש פרצות

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

                                          @נוחעם-FM בטוח שיש לך את הגרסה האחרונה שהעליתי? כתבתי פוסט אחורה שסידרתי את זה...

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

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

                                          • התחברות

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

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