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

להורדה | נמאס לכם מספוטיפיי? תורידו את metrolist (ללא תמונות)!

מתוזמן נעוץ נעול הועבר אפליקציות להורדה
41 פוסטים 13 כותבים 1.2k צפיות 14 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • L lilo159

    @שלום053 התוכנה או הקישור?

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

    @lilo159 כתב בלהורדה | נמאס לכם מספוטיפיי? תורידו את metrolist (ללא תמונות)!:

    @שלום053 התוכנה או הקישור?

    התוכנה.

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

      icon (1).png
      metrolist זו אפליקציית "לקוח" של יוטיוב מיוזיק. ניתן להתחבר עם החשבון גוגל שלכם.
      זה נראה לי fork של innertune, שבעבר מישהו כאן העלה ללא תמונות, אך כיום האפליקציה לא עובדת.
      יש מספר אתרים שמבצעים העברת פלייליסטים מספוטיפיי ליוטיוב, אולי בהמשך אעלה.
      עודכן לגרסה 12.4.0
      להורדה

      להורדת גרסה 12.3.0

      כנסו לספויילר כדי לראות את השינויים שעשיתי.

      לחסימת תמונות:
      בנתיב: com/metrolist/innertube/models/Thumbnail
      להוסיף בתוך:

      .method public synthetic constructor <init>(ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
          .registers 7
      
          .line 1
          and-int/lit8 v0, p1, 0x7
      
          .line 3
          const/4 v1, 0x7
      
          .line 4
          if-ne v1, v0, :cond_f
      
          .line 6
          invoke-direct {p0}, Ljava/lang/Object;-><init>()V
      
          .line 9
          iput-object p2, p0, Lcom/metrolist/innertube/models/Thumbnail;->a:Ljava/lang/String;
      
          .line 11
          iput-object p3, p0, Lcom/metrolist/innertube/models/Thumbnail;->b:Ljava/lang/Integer;
      
          .line 13
          iput-object p4, p0, Lcom/metrolist/innertube/models/Thumbnail;->c:Ljava/lang/Integer;
      
          .line 15
          return-void
      
          .line 16
          :cond_f
          sget-object p2, Lo9/d0;->a:Lo9/d0;
      
          .line 18
          invoke-virtual {p2}, Lo9/d0;->d()Lwe/g;
      
          .line 21
          move-result-object p2
      
          .line 22
          invoke-static {p1, v1, p2}, Lye/a1;->j(IILwe/g;)V
      
          .line 25
          const/4 p1, 0x0
      
          .line 26
          throw p1
      .end method
      

      את השורה הזו:

      .method public synthetic constructor <init>(ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
          .registers 7
      
          .line 1
          and-int/lit8 v0, p1, 0x7
      
          .line 3
          const/4 v1, 0x7
      
          .line 4
          if-ne v1, v0, :cond_f
      
          .line 6
          invoke-direct {p0}, Ljava/lang/Object;-><init>()V
      
          const-string p2, "" #:להוסיף את זה
      
          .line 9
          iput-object p2, p0, Lcom/metrolist/innertube/models/Thumbnail;->a:Ljava/lang/String;
      
          .line 11
          iput-object p3, p0, Lcom/metrolist/innertube/models/Thumbnail;->b:Ljava/lang/Integer;
      
          .line 13
          iput-object p4, p0, Lcom/metrolist/innertube/models/Thumbnail;->c:Ljava/lang/Integer;
      
          .line 15
          return-void
      
          .line 16
          :cond_f
          sget-object p2, Lo9/d0;->a:Lo9/d0;
      
          .line 18
          invoke-virtual {p2}, Lo9/d0;->d()Lwe/g;
      
          .line 21
          move-result-object p2
      
          .line 22
          invoke-static {p1, v1, p2}, Lye/a1;->j(IILwe/g;)V
      
          .line 25
          const/4 p1, 0x0
      
          .line 26
          throw p1
      .end method
      

      לעריכת הWebview של הכניסה:
      לחפש בsmali (כי השם של הclass דינמי ובעתיד יכול להשתנות):
      const-string p1, "https://music.youtube.com"

      .class public final Lla/g2;
      .super Landroid/webkit/WebViewClient;
      .source "r8-map-id-2a6a6c923824ab40ba6eb9af44cd87caf231110913720ddc8f6974f07061f26e"
      
      
      # instance fields
      .field public final synthetic a:Landroid/webkit/WebView;
      
      .field public final synthetic b:Lge/x;
      
      .field public final synthetic c:Ly0/w0;
      
      .field public final synthetic d:Ly0/w0;
      
      .field public final synthetic e:Ly0/w0;
      
      .field public final synthetic f:Ly0/w0;
      
      
      # direct methods
      .method public constructor <init>(Landroid/webkit/WebView;Lge/x;Ly0/w0;Ly0/w0;Ly0/w0;Ly0/w0;)V
          .registers 7
      
          .line 1
          iput-object p1, p0, Lla/g2;->a:Landroid/webkit/WebView;
      
          .line 3
          iput-object p2, p0, Lla/g2;->b:Lge/x;
      
          .line 5
          iput-object p3, p0, Lla/g2;->c:Ly0/w0;
      
          .line 7
          iput-object p4, p0, Lla/g2;->d:Ly0/w0;
      
          .line 9
          iput-object p5, p0, Lla/g2;->e:Ly0/w0;
      
          .line 11
          iput-object p6, p0, Lla/g2;->f:Ly0/w0;
      
          .line 13
          invoke-direct {p0}, Landroid/webkit/WebViewClient;-><init>()V
      
          .line 16
          return-void
      .end method
      
      
      # virtual methods
      .method public final onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
          .registers 9
      
          .line 1
          const-string v0, "view"
      
          .line 3
          invoke-static {p1, v0}, Lud/j;->f(Ljava/lang/Object;Ljava/lang/String;)V
      
          .line 6
          const-string p1, "javascript:Android.onRetrieveVisitorData(window.yt.config_.VISITOR_DATA)"
      
          .line 8
          iget-object v0, p0, Lla/g2;->a:Landroid/webkit/WebView;
      
          .line 10
          invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
      
          .line 13
          const-string p1, "javascript:Android.onRetrieveDataSyncId(window.yt.config_.DATASYNC_ID)"
      
          .line 15
          invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
      
          .line 18
          if-eqz p2, :cond_42
      
          .line 20
          const-string p1, "https://music.youtube.com"
      
          .line 22
          const/4 v0, 0x0
      
          .line 23
          invoke-static {p2, p1, v0}, Lde/t;->b0(Ljava/lang/String;Ljava/lang/String;Z)Z
      
          .line 26
          move-result p1
      
          .line 27
          const/4 v0, 0x1
      
          .line 28
          if-ne p1, v0, :cond_42
      
          .line 30
          invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
      
          .line 33
          move-result-object p1
      
          .line 34
          invoke-virtual {p1, p2}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String;
      
          .line 37
          move-result-object p1
      
          .line 38
          const-string p2, "getCookie(...)"
      
          .line 40
          invoke-static {p1, p2}, Lud/j;->e(Ljava/lang/Object;Ljava/lang/String;)V
      
          .line 43
          iget-object p2, p0, Lla/g2;->c:Ly0/w0;
      
          .line 45
          invoke-interface {p2, p1}, Ly0/w0;->setValue(Ljava/lang/Object;)V
      
          .line 48
          new-instance v0, Lla/v1;
      
          .line 50
          iget-object v3, p0, Lla/g2;->f:Ly0/w0;
      
          .line 52
          const/4 v5, 0x1
      
          .line 53
          iget-object v1, p0, Lla/g2;->d:Ly0/w0;
      
          .line 55
          iget-object v2, p0, Lla/g2;->e:Ly0/w0;
      
          .line 57
          const/4 v4, 0x0
      
          .line 58
          invoke-direct/range {v0 .. v5}, Lla/v1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lid/c;I)V
      
          .line 61
          const/4 p1, 0x3
      
          .line 62
          iget-object p2, p0, Lla/g2;->b:Lge/x;
      
          .line 64
          invoke-static {p2, v4, v4, v0, p1}, Lge/a0;->z(Lge/x;Lid/h;Lge/y;Ltd/e;I)Lge/s1;
      
          .line 67
          :cond_42
          return-void
      .end method
      
      

      השינויים:

      .class public final Lla/g2;
      .super Landroid/webkit/WebViewClient;
      .source "r8-map-id-2a6a6c923824ab40ba6eb9af44cd87caf231110913720ddc8f6974f07061f26e"
      
      
      # instance fields
      .field public final synthetic a:Landroid/webkit/WebView;
      
      .field public final synthetic b:Lge/x;
      
      .field public final synthetic c:Ly0/w0;
      
      .field public final synthetic d:Ly0/w0;
      
      .field public final synthetic e:Ly0/w0;
      
      .field public final synthetic f:Ly0/w0;
      
      
      # direct methods
      .method public constructor <init>(Landroid/webkit/WebView;Lge/x;Ly0/w0;Ly0/w0;Ly0/w0;Ly0/w0;)V
          .registers 9 # לשנות ל9
      
          # להוסיף לפני שורה 1
          invoke-direct {p0}, Landroid/webkit/WebViewClient;-><init>()V
          # עד כאן
         
           .line 1
          iput-object p1, p0, Lla/g2;->a:Landroid/webkit/WebView;
      
          .line 3
          iput-object p2, p0, Lla/g2;->b:Lge/x;
      
          .line 5
          iput-object p3, p0, Lla/g2;->c:Ly0/w0;
      
          .line 7
          iput-object p4, p0, Lla/g2;->d:Ly0/w0;
      
          .line 9
          iput-object p5, p0, Lla/g2;->e:Ly0/w0;
      
          .line 11
          iput-object p6, p0, Lla/g2;->f:Ly0/w0;
      
          .line 13 # להחליף את השורה שהיתה מתחת לשורה 13
          # מכאן
          invoke-virtual {p1}, Landroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings;
          move-result-object v0
          const/4 v1, 0x0
          invoke-virtual {v0, v1}, Landroid/webkit/WebSettings;->setLoadsImagesAutomatically(Z)V
          # עד כאן
          .line 16
          return-void
      .end method
      
      
      # virtual methods
      .method public final onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
          .registers 9
      
          .line 1
          const-string v0, "view"
      
          .line 3
          invoke-static {p1, v0}, Lud/j;->f(Ljava/lang/Object;Ljava/lang/String;)V
      
          # (!javascriptשימו לב לשורה שאחרי ה) להוסיף את זה 
          const-string v1, "javascript:(function(){function cleanPage(){const footer=document.querySelector('footer');if(footer)footer.remove();const langSelector=document.querySelector('[jscontroller=\"xiZRqc\"]');if(langSelector)langSelector.remove();const guestModeDiv=document.querySelector('.RDsYTb');if(guestModeDiv)guestModeDiv.remove();document.querySelectorAll('ytmusic-player-page, ytmusic-player-bar[slot=\"player-bar\"], #mini-guide, #guide, ytmusic-nav-bar .left-content, ytmusic-nav-bar .center-content').forEach(element=>{element.style.setProperty('display','none','important')});const navBarRight=document.querySelector('ytmusic-nav-bar .right-content');if(navBarRight){navBarRight.style.setProperty('margin-left','auto','important')}const popup=document.querySelector('tp-yt-iron-dropdown');if(popup&&popup.style.display!=='none'){const header=popup.querySelector('ytd-active-account-header-renderer');if(header)header.style.setProperty('display','none','important');popup.querySelectorAll('yt-multi-page-menu-section-renderer').forEach(section=>{if(!section.querySelector('a[href=\"/logout\"]')){section.style.setProperty('display','none','important')}else{section.querySelectorAll('ytd-compact-link-renderer').forEach(item=>{if(!item.contains(section.querySelector('a[href=\"/logout\"]'))){item.style.setProperty('display','none','important')}})}})}const immersiveBackground=document.querySelector('#background.immersive-background');if(immersiveBackground){immersiveBackground.style.setProperty('display','none','important')}const chipContainer=document.querySelector('ytmusic-chip-cloud-renderer');if(chipContainer){chipContainer.style.setProperty('display','none','important')}const allShelves=document.querySelectorAll('ytmusic-carousel-shelf-renderer');allShelves.forEach((shelf,index)=>{if(index===0){const carousel=shelf.querySelector('#ytmusic-carousel');if(carousel)carousel.style.setProperty('display','none','important');const header=shelf.querySelector('ytmusic-carousel-shelf-basic-header-renderer');if(header){const strapline=header.querySelector('.strapline');if(strapline)strapline.style.setProperty('display','none','important');const buttonGroup=header.querySelector('#button-group');if(buttonGroup)buttonGroup.style.setProperty('display','none','important')}const navButtons=shelf.querySelector('.button-group.style-scope.ytmusic-carousel-shelf-renderer');if(navButtons)navButtons.style.setProperty('display','none','important')}else{shelf.style.setProperty('display','none','important')}});const tastebuilder=document.querySelector('ytmusic-tastebuilder-shelf-renderer');if(tastebuilder){tastebuilder.style.setProperty('display','none','important')}const titleElement=document.querySelector('ytmusic-carousel-shelf-renderer yt-formatted-string.title');if(titleElement){const newText='אם זאת פעם ראשונה שאתם נכנסים, אתם יכולים לחזור כעת לאפליקציה (מומלץ לסגור לגמרי את האפליקציה ולפתוח מחדש, כדי שהיא תקלוט שנכנסתם), אם כבר הייתם מחוברים ואתם רוצים להחליף חשבון, צאו מהחשבון (לחיצה על העיגול) והתחילו מחדש את התהליך.';if(titleElement.textContent!==newText){titleElement.textContent=newText;titleElement.style.setProperty('direction','rtl','important');titleElement.style.setProperty('white-space','normal','important');titleElement.style.setProperty('text-overflow','clip','important');titleElement.style.setProperty('overflow','visible','important');titleElement.style.setProperty('height','auto','important');titleElement.style.setProperty('font-size','16px','important');titleElement.style.setProperty('font-weight','normal','important');titleElement.style.setProperty('line-height','1.5','important');titleElement.style.setProperty('color','white','important')}}}cleanPage();const observer=new MutationObserver(()=>{cleanPage()});observer.observe(document.body,{childList:true,subtree:true})})();"
         
          # עם הנתיב הנכון la/g2 שימו לב שכאן צריך להחליף את
          # (שבעוד כמה שורות .line 8 כמו נגיד אחרי) אפשר למצוא דוגמאות ברחבי הקוד
          iget-object v2, p0, Lla/g2;->a:Landroid/webkit/WebView;
          
          invoke-virtual {v2, v1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
      	
          # עד כאן
      	
          .line 6
          const-string p1, "javascript:Android.onRetrieveVisitorData(window.yt.config_.VISITOR_DATA)"
      	
          .line 8
          iget-object v0, p0, Lla/g2;->a:Landroid/webkit/WebView;
      
          .line 10
          invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
      
          .line 13
          const-string p1, "javascript:Android.onRetrieveDataSyncId(window.yt.config_.DATASYNC_ID)"
      
          .line 15
          invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
      
          .line 18
          if-eqz p2, :cond_42
      
          .line 20
          const-string p1, "https://music.youtube.com"
      
          .line 22
          const/4 v0, 0x0
      
          .line 23
          invoke-static {p2, p1, v0}, Lde/t;->b0(Ljava/lang/String;Ljava/lang/String;Z)Z
      
          .line 26
          move-result p1
      
          .line 27
          const/4 v0, 0x1
      
          .line 28
          if-ne p1, v0, :cond_42
      
          .line 30
          invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
      
          .line 33
          move-result-object p1
      
          .line 34
          invoke-virtual {p1, p2}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String;
      
          .line 37
          move-result-object p1
      
          .line 38
          const-string p2, "getCookie(...)"
      
          .line 40
          invoke-static {p1, p2}, Lud/j;->e(Ljava/lang/Object;Ljava/lang/String;)V
      
          .line 43
          iget-object p2, p0, Lla/g2;->c:Ly0/w0;
      
          .line 45
          invoke-interface {p2, p1}, Ly0/w0;->setValue(Ljava/lang/Object;)V
      	
          .line 48
          new-instance v0, Lla/v1;
      
          .line 50
          iget-object v3, p0, Lla/g2;->f:Ly0/w0;
      
          .line 52
          const/4 v5, 0x1
      
          .line 53
          iget-object v1, p0, Lla/g2;->d:Ly0/w0;
      
          .line 55
          iget-object v2, p0, Lla/g2;->e:Ly0/w0;
      
          .line 57
          const/4 v4, 0x0
      
          .line 58
          invoke-direct/range {v0 .. v5}, Lla/v1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lid/c;I)V
      
          .line 61
          const/4 p1, 0x3
      
          .line 62
          iget-object p2, p0, Lla/g2;->b:Lge/x;
      
          .line 64
          invoke-static {p2, v4, v4, v0, p1}, Lge/a0;->z(Lge/x;Lid/h;Lge/y;Ltd/e;I)Lge/s1;
      
          .line 67
          :cond_42
          return-void
      .end method
      
      

      M מנותק
      M מנותק
      MNU 0
      כתב נערך לאחרונה על ידי
      #24

      @lilo159 יש לכם בלי דפדפן פנימי?
      תודה רבה

      L תגובה 1 תגובה אחרונה
      0
      • אלוף תימןא אלוף תימן

        @lilo159 מי שרוצה מתורגם Metrolistkosher.zip

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

        @אלוף-תימן אני יכול להגיש לציבור את האפליקיצה שתרגמת בפוסט הראשון?

        אלוף תימןא תגובה 1 תגובה אחרונה
        0
        • L lilo159

          @אלוף-תימן אני יכול להגיש לציבור את האפליקיצה שתרגמת בפוסט הראשון?

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

          @lilo159 בשמחה

          תגובה 1 תגובה אחרונה
          2
          • M MNU 0

            @lilo159 יש לכם בלי דפדפן פנימי?
            תודה רבה

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

            @MNU-0 היכן יש? בכניסה לחשבון?

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

              icon (1).png
              metrolist זו אפליקציית "לקוח" של יוטיוב מיוזיק. ניתן להתחבר עם החשבון גוגל שלכם.
              זה נראה לי fork של innertune, שבעבר מישהו כאן העלה ללא תמונות, אך כיום האפליקציה לא עובדת.
              יש מספר אתרים שמבצעים העברת פלייליסטים מספוטיפיי ליוטיוב, אולי בהמשך אעלה.
              עודכן לגרסה 12.4.0
              להורדה

              להורדת גרסה 12.3.0

              כנסו לספויילר כדי לראות את השינויים שעשיתי.

              לחסימת תמונות:
              בנתיב: com/metrolist/innertube/models/Thumbnail
              להוסיף בתוך:

              .method public synthetic constructor <init>(ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
                  .registers 7
              
                  .line 1
                  and-int/lit8 v0, p1, 0x7
              
                  .line 3
                  const/4 v1, 0x7
              
                  .line 4
                  if-ne v1, v0, :cond_f
              
                  .line 6
                  invoke-direct {p0}, Ljava/lang/Object;-><init>()V
              
                  .line 9
                  iput-object p2, p0, Lcom/metrolist/innertube/models/Thumbnail;->a:Ljava/lang/String;
              
                  .line 11
                  iput-object p3, p0, Lcom/metrolist/innertube/models/Thumbnail;->b:Ljava/lang/Integer;
              
                  .line 13
                  iput-object p4, p0, Lcom/metrolist/innertube/models/Thumbnail;->c:Ljava/lang/Integer;
              
                  .line 15
                  return-void
              
                  .line 16
                  :cond_f
                  sget-object p2, Lo9/d0;->a:Lo9/d0;
              
                  .line 18
                  invoke-virtual {p2}, Lo9/d0;->d()Lwe/g;
              
                  .line 21
                  move-result-object p2
              
                  .line 22
                  invoke-static {p1, v1, p2}, Lye/a1;->j(IILwe/g;)V
              
                  .line 25
                  const/4 p1, 0x0
              
                  .line 26
                  throw p1
              .end method
              

              את השורה הזו:

              .method public synthetic constructor <init>(ILjava/lang/String;Ljava/lang/Integer;Ljava/lang/Integer;)V
                  .registers 7
              
                  .line 1
                  and-int/lit8 v0, p1, 0x7
              
                  .line 3
                  const/4 v1, 0x7
              
                  .line 4
                  if-ne v1, v0, :cond_f
              
                  .line 6
                  invoke-direct {p0}, Ljava/lang/Object;-><init>()V
              
                  const-string p2, "" #:להוסיף את זה
              
                  .line 9
                  iput-object p2, p0, Lcom/metrolist/innertube/models/Thumbnail;->a:Ljava/lang/String;
              
                  .line 11
                  iput-object p3, p0, Lcom/metrolist/innertube/models/Thumbnail;->b:Ljava/lang/Integer;
              
                  .line 13
                  iput-object p4, p0, Lcom/metrolist/innertube/models/Thumbnail;->c:Ljava/lang/Integer;
              
                  .line 15
                  return-void
              
                  .line 16
                  :cond_f
                  sget-object p2, Lo9/d0;->a:Lo9/d0;
              
                  .line 18
                  invoke-virtual {p2}, Lo9/d0;->d()Lwe/g;
              
                  .line 21
                  move-result-object p2
              
                  .line 22
                  invoke-static {p1, v1, p2}, Lye/a1;->j(IILwe/g;)V
              
                  .line 25
                  const/4 p1, 0x0
              
                  .line 26
                  throw p1
              .end method
              

              לעריכת הWebview של הכניסה:
              לחפש בsmali (כי השם של הclass דינמי ובעתיד יכול להשתנות):
              const-string p1, "https://music.youtube.com"

              .class public final Lla/g2;
              .super Landroid/webkit/WebViewClient;
              .source "r8-map-id-2a6a6c923824ab40ba6eb9af44cd87caf231110913720ddc8f6974f07061f26e"
              
              
              # instance fields
              .field public final synthetic a:Landroid/webkit/WebView;
              
              .field public final synthetic b:Lge/x;
              
              .field public final synthetic c:Ly0/w0;
              
              .field public final synthetic d:Ly0/w0;
              
              .field public final synthetic e:Ly0/w0;
              
              .field public final synthetic f:Ly0/w0;
              
              
              # direct methods
              .method public constructor <init>(Landroid/webkit/WebView;Lge/x;Ly0/w0;Ly0/w0;Ly0/w0;Ly0/w0;)V
                  .registers 7
              
                  .line 1
                  iput-object p1, p0, Lla/g2;->a:Landroid/webkit/WebView;
              
                  .line 3
                  iput-object p2, p0, Lla/g2;->b:Lge/x;
              
                  .line 5
                  iput-object p3, p0, Lla/g2;->c:Ly0/w0;
              
                  .line 7
                  iput-object p4, p0, Lla/g2;->d:Ly0/w0;
              
                  .line 9
                  iput-object p5, p0, Lla/g2;->e:Ly0/w0;
              
                  .line 11
                  iput-object p6, p0, Lla/g2;->f:Ly0/w0;
              
                  .line 13
                  invoke-direct {p0}, Landroid/webkit/WebViewClient;-><init>()V
              
                  .line 16
                  return-void
              .end method
              
              
              # virtual methods
              .method public final onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
                  .registers 9
              
                  .line 1
                  const-string v0, "view"
              
                  .line 3
                  invoke-static {p1, v0}, Lud/j;->f(Ljava/lang/Object;Ljava/lang/String;)V
              
                  .line 6
                  const-string p1, "javascript:Android.onRetrieveVisitorData(window.yt.config_.VISITOR_DATA)"
              
                  .line 8
                  iget-object v0, p0, Lla/g2;->a:Landroid/webkit/WebView;
              
                  .line 10
                  invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
              
                  .line 13
                  const-string p1, "javascript:Android.onRetrieveDataSyncId(window.yt.config_.DATASYNC_ID)"
              
                  .line 15
                  invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
              
                  .line 18
                  if-eqz p2, :cond_42
              
                  .line 20
                  const-string p1, "https://music.youtube.com"
              
                  .line 22
                  const/4 v0, 0x0
              
                  .line 23
                  invoke-static {p2, p1, v0}, Lde/t;->b0(Ljava/lang/String;Ljava/lang/String;Z)Z
              
                  .line 26
                  move-result p1
              
                  .line 27
                  const/4 v0, 0x1
              
                  .line 28
                  if-ne p1, v0, :cond_42
              
                  .line 30
                  invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
              
                  .line 33
                  move-result-object p1
              
                  .line 34
                  invoke-virtual {p1, p2}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String;
              
                  .line 37
                  move-result-object p1
              
                  .line 38
                  const-string p2, "getCookie(...)"
              
                  .line 40
                  invoke-static {p1, p2}, Lud/j;->e(Ljava/lang/Object;Ljava/lang/String;)V
              
                  .line 43
                  iget-object p2, p0, Lla/g2;->c:Ly0/w0;
              
                  .line 45
                  invoke-interface {p2, p1}, Ly0/w0;->setValue(Ljava/lang/Object;)V
              
                  .line 48
                  new-instance v0, Lla/v1;
              
                  .line 50
                  iget-object v3, p0, Lla/g2;->f:Ly0/w0;
              
                  .line 52
                  const/4 v5, 0x1
              
                  .line 53
                  iget-object v1, p0, Lla/g2;->d:Ly0/w0;
              
                  .line 55
                  iget-object v2, p0, Lla/g2;->e:Ly0/w0;
              
                  .line 57
                  const/4 v4, 0x0
              
                  .line 58
                  invoke-direct/range {v0 .. v5}, Lla/v1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lid/c;I)V
              
                  .line 61
                  const/4 p1, 0x3
              
                  .line 62
                  iget-object p2, p0, Lla/g2;->b:Lge/x;
              
                  .line 64
                  invoke-static {p2, v4, v4, v0, p1}, Lge/a0;->z(Lge/x;Lid/h;Lge/y;Ltd/e;I)Lge/s1;
              
                  .line 67
                  :cond_42
                  return-void
              .end method
              
              

              השינויים:

              .class public final Lla/g2;
              .super Landroid/webkit/WebViewClient;
              .source "r8-map-id-2a6a6c923824ab40ba6eb9af44cd87caf231110913720ddc8f6974f07061f26e"
              
              
              # instance fields
              .field public final synthetic a:Landroid/webkit/WebView;
              
              .field public final synthetic b:Lge/x;
              
              .field public final synthetic c:Ly0/w0;
              
              .field public final synthetic d:Ly0/w0;
              
              .field public final synthetic e:Ly0/w0;
              
              .field public final synthetic f:Ly0/w0;
              
              
              # direct methods
              .method public constructor <init>(Landroid/webkit/WebView;Lge/x;Ly0/w0;Ly0/w0;Ly0/w0;Ly0/w0;)V
                  .registers 9 # לשנות ל9
              
                  # להוסיף לפני שורה 1
                  invoke-direct {p0}, Landroid/webkit/WebViewClient;-><init>()V
                  # עד כאן
                 
                   .line 1
                  iput-object p1, p0, Lla/g2;->a:Landroid/webkit/WebView;
              
                  .line 3
                  iput-object p2, p0, Lla/g2;->b:Lge/x;
              
                  .line 5
                  iput-object p3, p0, Lla/g2;->c:Ly0/w0;
              
                  .line 7
                  iput-object p4, p0, Lla/g2;->d:Ly0/w0;
              
                  .line 9
                  iput-object p5, p0, Lla/g2;->e:Ly0/w0;
              
                  .line 11
                  iput-object p6, p0, Lla/g2;->f:Ly0/w0;
              
                  .line 13 # להחליף את השורה שהיתה מתחת לשורה 13
                  # מכאן
                  invoke-virtual {p1}, Landroid/webkit/WebView;->getSettings()Landroid/webkit/WebSettings;
                  move-result-object v0
                  const/4 v1, 0x0
                  invoke-virtual {v0, v1}, Landroid/webkit/WebSettings;->setLoadsImagesAutomatically(Z)V
                  # עד כאן
                  .line 16
                  return-void
              .end method
              
              
              # virtual methods
              .method public final onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V
                  .registers 9
              
                  .line 1
                  const-string v0, "view"
              
                  .line 3
                  invoke-static {p1, v0}, Lud/j;->f(Ljava/lang/Object;Ljava/lang/String;)V
              
                  # (!javascriptשימו לב לשורה שאחרי ה) להוסיף את זה 
                  const-string v1, "javascript:(function(){function cleanPage(){const footer=document.querySelector('footer');if(footer)footer.remove();const langSelector=document.querySelector('[jscontroller=\"xiZRqc\"]');if(langSelector)langSelector.remove();const guestModeDiv=document.querySelector('.RDsYTb');if(guestModeDiv)guestModeDiv.remove();document.querySelectorAll('ytmusic-player-page, ytmusic-player-bar[slot=\"player-bar\"], #mini-guide, #guide, ytmusic-nav-bar .left-content, ytmusic-nav-bar .center-content').forEach(element=>{element.style.setProperty('display','none','important')});const navBarRight=document.querySelector('ytmusic-nav-bar .right-content');if(navBarRight){navBarRight.style.setProperty('margin-left','auto','important')}const popup=document.querySelector('tp-yt-iron-dropdown');if(popup&&popup.style.display!=='none'){const header=popup.querySelector('ytd-active-account-header-renderer');if(header)header.style.setProperty('display','none','important');popup.querySelectorAll('yt-multi-page-menu-section-renderer').forEach(section=>{if(!section.querySelector('a[href=\"/logout\"]')){section.style.setProperty('display','none','important')}else{section.querySelectorAll('ytd-compact-link-renderer').forEach(item=>{if(!item.contains(section.querySelector('a[href=\"/logout\"]'))){item.style.setProperty('display','none','important')}})}})}const immersiveBackground=document.querySelector('#background.immersive-background');if(immersiveBackground){immersiveBackground.style.setProperty('display','none','important')}const chipContainer=document.querySelector('ytmusic-chip-cloud-renderer');if(chipContainer){chipContainer.style.setProperty('display','none','important')}const allShelves=document.querySelectorAll('ytmusic-carousel-shelf-renderer');allShelves.forEach((shelf,index)=>{if(index===0){const carousel=shelf.querySelector('#ytmusic-carousel');if(carousel)carousel.style.setProperty('display','none','important');const header=shelf.querySelector('ytmusic-carousel-shelf-basic-header-renderer');if(header){const strapline=header.querySelector('.strapline');if(strapline)strapline.style.setProperty('display','none','important');const buttonGroup=header.querySelector('#button-group');if(buttonGroup)buttonGroup.style.setProperty('display','none','important')}const navButtons=shelf.querySelector('.button-group.style-scope.ytmusic-carousel-shelf-renderer');if(navButtons)navButtons.style.setProperty('display','none','important')}else{shelf.style.setProperty('display','none','important')}});const tastebuilder=document.querySelector('ytmusic-tastebuilder-shelf-renderer');if(tastebuilder){tastebuilder.style.setProperty('display','none','important')}const titleElement=document.querySelector('ytmusic-carousel-shelf-renderer yt-formatted-string.title');if(titleElement){const newText='אם זאת פעם ראשונה שאתם נכנסים, אתם יכולים לחזור כעת לאפליקציה (מומלץ לסגור לגמרי את האפליקציה ולפתוח מחדש, כדי שהיא תקלוט שנכנסתם), אם כבר הייתם מחוברים ואתם רוצים להחליף חשבון, צאו מהחשבון (לחיצה על העיגול) והתחילו מחדש את התהליך.';if(titleElement.textContent!==newText){titleElement.textContent=newText;titleElement.style.setProperty('direction','rtl','important');titleElement.style.setProperty('white-space','normal','important');titleElement.style.setProperty('text-overflow','clip','important');titleElement.style.setProperty('overflow','visible','important');titleElement.style.setProperty('height','auto','important');titleElement.style.setProperty('font-size','16px','important');titleElement.style.setProperty('font-weight','normal','important');titleElement.style.setProperty('line-height','1.5','important');titleElement.style.setProperty('color','white','important')}}}cleanPage();const observer=new MutationObserver(()=>{cleanPage()});observer.observe(document.body,{childList:true,subtree:true})})();"
                 
                  # עם הנתיב הנכון la/g2 שימו לב שכאן צריך להחליף את
                  # (שבעוד כמה שורות .line 8 כמו נגיד אחרי) אפשר למצוא דוגמאות ברחבי הקוד
                  iget-object v2, p0, Lla/g2;->a:Landroid/webkit/WebView;
                  
                  invoke-virtual {v2, v1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
              	
                  # עד כאן
              	
                  .line 6
                  const-string p1, "javascript:Android.onRetrieveVisitorData(window.yt.config_.VISITOR_DATA)"
              	
                  .line 8
                  iget-object v0, p0, Lla/g2;->a:Landroid/webkit/WebView;
              
                  .line 10
                  invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
              
                  .line 13
                  const-string p1, "javascript:Android.onRetrieveDataSyncId(window.yt.config_.DATASYNC_ID)"
              
                  .line 15
                  invoke-virtual {v0, p1}, Landroid/webkit/WebView;->loadUrl(Ljava/lang/String;)V
              
                  .line 18
                  if-eqz p2, :cond_42
              
                  .line 20
                  const-string p1, "https://music.youtube.com"
              
                  .line 22
                  const/4 v0, 0x0
              
                  .line 23
                  invoke-static {p2, p1, v0}, Lde/t;->b0(Ljava/lang/String;Ljava/lang/String;Z)Z
              
                  .line 26
                  move-result p1
              
                  .line 27
                  const/4 v0, 0x1
              
                  .line 28
                  if-ne p1, v0, :cond_42
              
                  .line 30
                  invoke-static {}, Landroid/webkit/CookieManager;->getInstance()Landroid/webkit/CookieManager;
              
                  .line 33
                  move-result-object p1
              
                  .line 34
                  invoke-virtual {p1, p2}, Landroid/webkit/CookieManager;->getCookie(Ljava/lang/String;)Ljava/lang/String;
              
                  .line 37
                  move-result-object p1
              
                  .line 38
                  const-string p2, "getCookie(...)"
              
                  .line 40
                  invoke-static {p1, p2}, Lud/j;->e(Ljava/lang/Object;Ljava/lang/String;)V
              
                  .line 43
                  iget-object p2, p0, Lla/g2;->c:Ly0/w0;
              
                  .line 45
                  invoke-interface {p2, p1}, Ly0/w0;->setValue(Ljava/lang/Object;)V
              	
                  .line 48
                  new-instance v0, Lla/v1;
              
                  .line 50
                  iget-object v3, p0, Lla/g2;->f:Ly0/w0;
              
                  .line 52
                  const/4 v5, 0x1
              
                  .line 53
                  iget-object v1, p0, Lla/g2;->d:Ly0/w0;
              
                  .line 55
                  iget-object v2, p0, Lla/g2;->e:Ly0/w0;
              
                  .line 57
                  const/4 v4, 0x0
              
                  .line 58
                  invoke-direct/range {v0 .. v5}, Lla/v1;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Lid/c;I)V
              
                  .line 61
                  const/4 p1, 0x3
              
                  .line 62
                  iget-object p2, p0, Lla/g2;->b:Lge/x;
              
                  .line 64
                  invoke-static {p2, v4, v4, v0, p1}, Lge/a0;->z(Lge/x;Lid/h;Lge/y;Ltd/e;I)Lge/s1;
              
                  .line 67
                  :cond_42
                  return-void
              .end method
              
              

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

              @lilo159 רק אומר שהמפתח מצהיר שהוא תומך במשהו שנקרא פל0טין (לי אישית אין מושג מה זה)

              אגב אני רואה שהשתמשת באתר שלי בשביל לקצר את הקישור 😅😅

              היי

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

                עודכן לגרסה 12.3.0

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

                  עודכן לגרסה 12.3.0

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

                  @lilo159 תודה רבה עזרת לי מאוד חיפשתי הרבה זמן משהו כזה לשיעורי תורה Screenshot_20250816-212927.png

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

                    עודכן לגרסה 12.4.0
                    כמו כן שינתי את העריכה של הwebview.

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

                      אני מבקש לא להתקין את העדכון החדש!!! פרטים אח"כ.

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

                        אז מסתבר שמשום מה, כשלאפליקציה אין גישה לקישורים של התמונות, בין אם זה ע"י שערכתי את האפליקיצה, ובין אם זה ע"י הוסטים, היא שולחת תמונה "ריקה" כביכול למערכת (לnotifications), מה שמקריס את המערכת. הטלפון שלי היה על לופים, קריסה, המסך הידוע לשמצה של בחירה בין wipe data לreboot, וחוזר חלילה, עד שהצלחתי למחוק את האפליקציה. בהתחלה באמת חשבתי שזה בגלל העריכה שעשיתי, אבל גם כשהתקנתי את הרגיל, כיוון שהיו לי קישורים בhosts שחסמו את התמונות, אותו דבר.
                        כרגע אין לי פתרון, אז אני משנמך חזרה ל12.3.0, עם העריכה החדשה לwebview שמשמעותית בפני עצמה.
                        אם למישהו יש רעיון מה לעשות כמובן שאשמח לשמוע...

                        שונמך לגרסה 12.3.0 עם העריכה החדשה לwebview.

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

                          אז מסתבר שמשום מה, כשלאפליקציה אין גישה לקישורים של התמונות, בין אם זה ע"י שערכתי את האפליקיצה, ובין אם זה ע"י הוסטים, היא שולחת תמונה "ריקה" כביכול למערכת (לnotifications), מה שמקריס את המערכת. הטלפון שלי היה על לופים, קריסה, המסך הידוע לשמצה של בחירה בין wipe data לreboot, וחוזר חלילה, עד שהצלחתי למחוק את האפליקציה. בהתחלה באמת חשבתי שזה בגלל העריכה שעשיתי, אבל גם כשהתקנתי את הרגיל, כיוון שהיו לי קישורים בhosts שחסמו את התמונות, אותו דבר.
                          כרגע אין לי פתרון, אז אני משנמך חזרה ל12.3.0, עם העריכה החדשה לwebview שמשמעותית בפני עצמה.
                          אם למישהו יש רעיון מה לעשות כמובן שאשמח לשמוע...

                          שונמך לגרסה 12.3.0 עם העריכה החדשה לwebview.

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

                          @lilo159 בלי רוט? זאת אומרת שזה יכןל לשמש כווירוס?

                          היי

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

                            @lilo159 בלי רוט? זאת אומרת שזה יכןל לשמש כווירוס?

                            ק מנותק
                            ק מנותק
                            קופיקו
                            כתב נערך לאחרונה על ידי
                            #35
                            פוסט זה נמחק!
                            תגובה 1 תגובה אחרונה
                            0
                            • L lilo159

                              אז מסתבר שמשום מה, כשלאפליקציה אין גישה לקישורים של התמונות, בין אם זה ע"י שערכתי את האפליקיצה, ובין אם זה ע"י הוסטים, היא שולחת תמונה "ריקה" כביכול למערכת (לnotifications), מה שמקריס את המערכת. הטלפון שלי היה על לופים, קריסה, המסך הידוע לשמצה של בחירה בין wipe data לreboot, וחוזר חלילה, עד שהצלחתי למחוק את האפליקציה. בהתחלה באמת חשבתי שזה בגלל העריכה שעשיתי, אבל גם כשהתקנתי את הרגיל, כיוון שהיו לי קישורים בhosts שחסמו את התמונות, אותו דבר.
                              כרגע אין לי פתרון, אז אני משנמך חזרה ל12.3.0, עם העריכה החדשה לwebview שמשמעותית בפני עצמה.
                              אם למישהו יש רעיון מה לעשות כמובן שאשמח לשמוע...

                              שונמך לגרסה 12.3.0 עם העריכה החדשה לwebview.

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

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

                              L תגובה 1 תגובה אחרונה
                              0
                              • ק קופיקו

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

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

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

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

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

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

                                  @lilo159 תודה אבל לגבי זה שהוא עובד לי בכמה מכשירים חלק זה בעיה?

                                  L תגובה 1 תגובה אחרונה
                                  0
                                  • ק קופיקו

                                    @lilo159 תודה אבל לגבי זה שהוא עובד לי בכמה מכשירים חלק זה בעיה?

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

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

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

                                      עודכן לגרסה 12.4.0
                                      תוקנה הבעיה שהיתה, בעזרת ד' אסביר מאוחר יותר מה קרה.
                                      בכל מקרה השארתי את הגרסה הקודמת למעוניינים.

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

                                        אז ככה, מסתבר שזו בעיה ידועה כבר בexoplayer, דווח על זה כאן, וכאן נפתחה על זה בעיה רשמית (בissuetracker), עם אותה שגיאה בדיוק שהיתה לי.
                                        ממה שבדקתי, זה קורה רק באנדרואיד 11, ב10 ו12 זה לא קרס.
                                        למעשה בסוף (אחרי שהגעתי כמעט למליון טוקנים בai studio) ערכתי את הקוד כך שהוא לא ישלח את הBitmap, ובזה נפתרה הבעיה.
                                        אני לא אעדכן את השינוי בקוד (שבספולייר), כי בדקתי עכשיו גרסאות דיבוג והוא כנראה שינה משהו וזה כבר לא קורס.
                                        אז למה כל זה חשוב? כי כפי ש @נחמן-פלח העלה את הנקודה, שזה יכול לשמש כווירוס. אז אמנם זה לא היה כאן בכוונת מתכוון של המפתח, אבל זה לא כל כך רגיל להצליח להקריס מערכת וכמעט להשבית טלפון (ניסיתי גם על אמולטור אונליין, זה הקריס גם אותו), ע"י אפליקציית משתמש בלי רוט. זה יכל גם להשבית טלפון של מישהו שהוריד את האפליקציה המקורית ללא עריכה שלי, ויש לו סינון על הטלפון שחוסם תמונות, ויש לו אנדרואיד 11, וזהו, יכול ללכת הטלפון.

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • C cfopuser התייחס לנושא זה

                                        • התחברות

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

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