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

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

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

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

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

    ואז אם מישהו עם רצון ויכולת יוכל להחיל את השינויים בקוד המקור זה אכן יהיה מבורך.

    אם תסביר באיזה קבצים בדיוק עשית שינויים, זה יקל עלי מאוד לעשות את זה.
    ואז אולי כשיהיה לי זמן אשב על זה בע"ה.
    תודה רבה!

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

    @מישהו12 זה בדיוק מה שהתכוונתי לעשות, אני תמיד משתדל בפוסטים שלי להראות את השינויים שעשיתי בסמאלי.

    תגובה 1 תגובה אחרונה
    0
    • L מנותק
      L מנותק
      lilo159
      כתב נערך לאחרונה על ידי
      #20

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              @מישהו12 זה https

              מישהו12מ תגובה 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
                

                הנני העניה מנותק
                הנני העניה מנותק
                הנני העני
                מדריכים
                כתב נערך לאחרונה על ידי הנני העני
                #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

                                          • התחברות

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

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