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

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
למה באתיל

למה באתי

@למה באתי
מדריכים
הפסקת מעקב מעקב
אודות
פוסטים
3.5k
נושאים
338
שיתופים
0
קבוצות
1
עוקבים
13
עוקב אחרי
17

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • מדריך | הכשרת נגני אדרואיד 8 מא' ועד ת' - מדריך שלא נראה כמותו!!
    למה באתיל למה באתי

    שלום. היום נדריך אתכם איך מכשירים נגני אנדרואיד 8.1 .
    המדריך הזה הוא קצת ארוך.. אם אתם רק רוצים להכשיר את הנגן ולא אכפת לכם הנראות אז תעשו קיידרואיד ואם אכפת לכם הנראות או שאתם רוצים רוט אז תעשו את המדריך הזה..

    השלבים שאנחנו הולכים לעשות היום הם כך:

    1. בירור גירסת מעבד הMTK של הנגן שלנו.
    2. שאיבת גירסת הנגן ע''י התוכנה SP FLASH TOOL עם המדריך המטורף של חגי.
    3. תיקון קובץ הboot.img וצריבתו על המכשיר..
    4. הסרת הוופי וכו' מהנגן.
    5. הסרת הסמלים מהסריקים.טטוס בר ומההגדרות.
    6. למתקדמים: תמונה משלכם בפתיחת נגן.

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

    מתחילים? משתמשים חדשים באנדרואיד? אני מאוד ממליץ לעקוב אחרי הספויילרים..👇 👇

    ספויילר

    מה צריך לעשות לפני התחלת התהליך..

    קודם כל שהנגן יהיה מוטען על 50 פלוס כי מתי שנכניס את זה לתוכנת הצריבה אז זה קצת יכול לעשות בעיות.. (אבל אני הצלחתי גם שהיה לי 10 אחוז).

    ואנחנו צריכים להוריד את הדרייברים האלו ואת הדרייברים למצב פאסטבוט ומאוד חשוב לעדכן במחשב עדכונים אופציונליים (זה נמצא בהגדרות-windows update - עדכונים אופציונליים).צילום מסך 2024-08-13 135659.png

    ואת התוכנות שנצטרך במהלך ההכשרה:
    sp flash tool
    WWR
    adb

    נכבה את הנגן, ואז נלחץ על כפתור ההדלקה וכפתור הווליום התחתון.. נחכה כמה רגעים ואז לנווט עם מקשי הווליום (הטאצ' לא עובד) לשורה version (השורה אחת לפני האחרונה).

    טוב.png

    וללחוץ עליה עם מקש ההפעלה (לחיצה קצרה) ואז אתם עוברים לפרטי המכשיר, מה שמעניין אותנו כרגע זה השורה שנמצאת אצלי ראשונה (לא יודע מה אצל אחרים..) שזה שם המעבד של הנגן.. (תחפשו שורה שמתחילה בmt ואז כמה מספרים).

    תמונה2.png

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

    נפעיל אפשרויות מפתחים ונאשר ניפוי באגים וביטול נעילה של oem
    (למי שלא יודע איך פותחים אפשרויות מפתחים אז כך, נכנס להגדרות>מידע על הטלפון>נלחץ על השורה האחרונה (גירסת build) 7 פעמים, כעת נוסף בהגדרות אפשרויות מפתחים, בשביל להגיע אליו נכנס להגדרות > מערכת > מתקדם > אפשרויות מפתח, ושם צריך לסמן כנ"ל המיקום של האפשרויות מפתחים שונה מכשיר למכשיר ,כתבתי כפי המיקום שזה אצלי)

    גיבוי הקושחא של הנגן

    אחרי שאנחנו יודעים את שם המעבד אפשר לעבור למדריך של חגי שאיתו שואבים את הקושחא של הנגן שלנו..

    https://mitmachim.top/topic/34844/מדריך-מדריך-לגיבוי-קושחה-מלא-dump-למכשירי-mediatek

    תיצרו סקאטר בעצמכם זה שתי שניות..

    אני ממליץ מאוד בשלב 5 חלק ג' לבחור את מס' 7 שזה קושחא מלאה ללא הנתונים הריקים.

    אחרי ששאבתם את הקושחא אני ממליץ לשמור אותה (כדי שאם תחטפו 'בריק' וכדו') (אפשר למחוק את קבצי הrom שיצרתם בתוכנה..) ואם בכ''א אתם לא מעוניינים אז תשמרו את הboot.img. ואת קובץ הlogo.bin.

    עשיית הרוט בפועל

    אחרי שיש לכם את קובץ הבוט ביד נעבור למדריך של @משה-144 של עשיית הרוט בפועל https://mitmachim.top/topic/28376/מדריך-רוט-למכשירי-אנדרואיד-עם-מעבד-mtk-באמצעות-קובץ-boot-img

    כעת (חודש אב תשפ''ד) המגיסק הכי מעודכן זה גירסה מס' 27 אני יעלה אותה לכאן (כי במדריך זה לא הכי מעודכן) Magisk-v27.0.apk

    כמו''כ אני ממליץ יותר לעבוד עם הadb ולא עם הסקריפט שהוא העלה לשם..
    כמו''כ התקייה שצריך לשים בה את קובץ הבוט זה אותה תקייה של התוכנה..

    מי שלא צריך לפתוח בוטלנדר אז מספיק לתקן את הבוט ע''י המגיסק ואז לצרוב אותו עם sp flash tool עם הסקאטר של השאיבה..

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

    מחיקת הוויפי מהנגן

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

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

    cf9558a4-5537-4a68-86a3-0c3817e95e9e-image.png

    וביערת את הוויפי.apk אפליקציה פשוטה להחריד לתפעול.. מתקינים אותה במכשיר.. היא כבר מוצאת לבד את גירסת האנדרואיד שלך.. אתה רק לוחץ. מפעיל מחדש וזהו..

    הסרת הסמלים מההגדרות והמסטטוס בר

    תורידו את הגירסא העדכנית של סייר רוט MT ותמחקו את השורה הזאת:

    vendor/etc/permissions/android.hardware.wifi.xml
    

    זה ימחק את הוויפי מהסטטוס בר ומההגדרות.

    הסרת ישומי מערכת לא רצויים

    יש פה אפליקציה שהיא מוחקת ישומי מערכת עם הרוט..
    מסיר אפליקציות מערכת עם רוט.apk להתקין אותה לאשר הרשאת מגיסק ורוט ואז רק להסיר מה שאתם לא רוצים. להפעיל מחדש וסיימתם..

    וזהו. יש לכם רוט. ואתם יכולים לעשות מה שבא לכם בקבצים הפנימיים של המכשיר!!!

    חסימת מצב מפתחים

    יש את המדריך המושקע של @10110000 איך לחסום בצורה גבוהה את מצב המפתחים

    https://mitmachim.top/topic/67851/מדריך-איך-לשחק-עם-אפשרויות-מפתחים-ולחסום-אותו

    הכנסת תמונה משלך בהפעלת המכשיר.

    אני יעלה ע''ז מדריך מסודר ונורמאלי בהמשך... לבנתיים זה מה שאני עשיתי לעצמי
    : IMG_20240523_015801_867.jpg

    (מדריך זה נעשה אחרי שעות של עבודה. נסיונות. באגים ודפקות... אנא פרגנו בלייקים..)

    מדריך זה נעשה על נגן M500.

    מדריכים - אנדרואיד למה באתי

  • בקשת מידע | אשכול גירסאות לנגנים
    למה באתיל למה באתי

    אני חושב שלדעתי במקום לשאול מלא שאלות בפורום כל פעם ולחפש וכו' אפשר פשוט לפתוח אשכול עם אינדקס לכל נגן ונגן כך שמי שיצטרך פשוט שיכנס לאינדקס..

    מה אומרים על זה המשתמשים?

    • M390 - אנדורואיד 5 ו8
    • ruizu h6
    • M303 PRO עם רוט - קושחא מלאה
    • M500 מלאה - של @אלוף-תימן
    • טיימקו Q5/Q3
    • BF66
    • [נגן M36 - אנדרואיד 13]
    • M400
    • גירסא כשרה לנגן m308 - של @אלוף-תימן

    שימו עוקב על העמוד ותתעדכנו בכל נגן שנכנס לאינדקס.

    כמובן שלא רק אני יעלה אלא רק בשיתוף פעולה של כלל המשתתפים נגיע באמת להישגים גבוהים.

    עזרה הדדית - אנדרואיד

  • שיתוף | ApkShellExt: אייקוני אפליקציות בסייר הקבצים בווינדוס
    למה באתיל למה באתי

    לא יודע אם כולם מכירים את הפרוייקט הזה, אבל בתור אחד שעובד מלא עם קבצי APK ויוצר חנויות אופליין אז משגע אותי שיש לי אפליקציה עם שם באנגלית ואני לא זוכר מה היא עושה.. אז מצאתי פרויקט בגיטהב שפשוט עושה את העבודה פשוט מראה בכל קובץ APK את האייכון שלו. לדוגמא: 717050e9-0f3e-4d42-a1f9-3af207aaa1d4-image.png

    אז תורידו מפה את הקובץ הזה:88a5ff66-e83d-4e0f-840c-33cfa2d5cc64-image.png

    ותריצו את install .

    וזהו: מעכשיו כל קובץ APK שיש לכם יראה כמו בתמונה...

    שמחתי לעזור..

    ביקשו שאני יעלה לפורום:

    ApkShellext2.7z

    מדריכים - אנדרואיד למה באתי

  • שיתוף | אפליקציה חדשה בסגנון קיידרואיד לחסימה ללא רוט. בבדיקה!
    למה באתיל למה באתי

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

    עריכה

    בנוגע לחסימה: החסימה הרמטית לחלוטין. כמובן שריקוברי חוסם רק בשירותי גוגל רשמיים.
    כמו"כ: יש שני באגים: 1. יש מצב השבתה של האפליקציה ויש מצב שהיא עובדת (כדי להשבית צריך קוד) אבל לא רואים הבדל בפועל באפליקציה בין שני המצבים. 2. אי אפשר להסיר את האפליקציה.

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

    app-debug.apk

    !Screenshot_20250312-024347.png

    הסיסמה הראשונית היא 123456

    אשמח לקבל ביקורת ובאגים.

    להריץ את הפקודה הזאת בADB אחרי ההתקנה

    adb shell dpm set-device-owner israel.filter.mdm/.MyDeviceAdminReceiver
    
    עזרה הדדית - אנדרואיד

  • מדריך | צריבת גירסא בsp flash tool
    למה באתיל למה באתי

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

    @צוות-פיקוח אם אפשר לנעוץ.

    קודם כל מורידים את התוכנה מהאתר הרשמי
    ודרייברים מפה
    אחר כך אתם צריכים לוודא שיש לכם את הקבצים שמתאימים לצריבה בsp.

    אם אתם מעוניינים לצרוב גירסא מלאה ולא רק מחיצה אחת מביניהם אז אתם אמורים לראות אז זה אצלכם ככה c8ec31dc-892c-4f68-8416-1814c8262962-image.png

    מה שהכי חשוב זה קובץ הסקאטר -

    MT6750_Android_scatter
    

    שהמספרים בתחילת השם משתנים בין מעבד למעבד.

    אם אין לכם את הקובץ הזה אתם לא יכולים להתחיל לעבוד עם SP בשביל זה יש תוכנות אחרות...
    אם אין לכם את זה כנראה שהכוונה בגירסא הזו שלא תצרבו אותו עם sp flash tool.

    תפתחו את sp flash tool

    5d43cd6b-bda1-42b7-9f62-40b119eb877b-image.png

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

    תבחרו איזה מחיצה אתם רוצים לצרוב (תלחצו על סימון הווי - V לבחירה וביטול)

    יש בתוכנה אופציה כזו לבחירה אז מה שרואים בתמונה זה האופציה המומלצת . d1229411-1d9d-4911-b06e-e2bcf91a3f96-image.png אז מי שלא מבין שלא יבחר אופציות אחרות זה יכול לדפוק לכם את הנגן לצמיתות.
    @אליר325000 כתב באחד הפוסטים ואני מצטט:

    בעיקרון יש שני סוגי צריבה עיקריות:

    dowonload
    format + all
    יש הרבה אנשים שטועים וחשוב להסביר!

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

    ולעניינו: כל מעבד של אנדרואיד כדי להכיל את מ. ההפעלה, דרייברים, וכו׳, מכיל ״חדרים״ שזה קרוי בעגה הנכונה ״מחיצות״, כאשר אתם צריכים לצרוב רק מחיצה אחת, אסור לכם בשום אופן לעשות format all זה משמיד את כל המחיצות האחרות!!!!

    מתי כן משתמשים בformat all?

    כאשר אתם מוציאים מכשיר שכבר נהרסו לו מבנה המחיצות, ויש לכם רום מלא - מלא [ובגדול - לא מחולק למחיצות, (כאילו בא כקובץ אחד, למרות שיש פעמים שאפשר שלא] אז תשתמשו באפשרות הנ״ל.

    תלחצו על הלחצן הירוק עם הכיתוב downoload (שימו לב שהמכשיר לא מחובר למחשב ומכובה)
    7673c756-0f28-43e1-b6cd-96285896cf3e-image.png
    תחברו את המכשיר כשהוא מכובה ואז תחכו שזה יגיע למאה אחוז..

    00a29f67-765a-499a-9309-f6d113544658-image.png

    וכאשר זה יראה לכם ככה אז תדעו שהצריבה הצליחה

    3cb41af9-d48d-4c56-bf7f-af7cd25ef664-image.png
    המדריך נכתב בשפה פשוטה כדי שגם מי שממש מתחיל בשימוש עם אנדרואיד יצליח לצרוב.

    ושתשתמשו בזה רק להכשיר ולא לפרוץ ר''ל.

    תגובות למדריך כאן

    מדריכים - אנדרואיד למה באתי

  • מדריך | כך תפרצו בעצמכם את ספוטיפי.
    למה באתיל למה באתי

    📱 ככה תכינו בעצמכם גרסת Spotify פרוצה, בקלות ובמהירות! - פחות מ2 דקות.

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

    הכנתי לכם מדריך להכנת גרסת ספוטיפיי פרוץ, בעצמכם.
    זה לוקח פחות מ2 דקות !

    📱 שתפו לחברים, ותהנו.

    🔗 לינקים שימושיים:
    ☁ הורדת ReVanced Manager.
    ☁ הורדת AntiSplit M (לבחור בקובץ Apk).
    📱 ספוטיפיי בחנות גוגל פליי.

    📺 מדריך כתוב:

    1️⃣ התקינו את האפליקציה ספוטיפיי ישירות מחנות גוגל פליי.
    (מומלץ לאחר ההתקנה להשבית את העדכון האוטומטי ע"י לחיצה ב3 נקודות למעלה > בטלו את הסימון על הפעלת עדכון אוטומטי)
    2️⃣ הורידו את האפליקציה ReVanced Manager בלחיצה כאן, או הורדה ישירה בטלגרם כאן. כמובן התקינו אותה.
    3️⃣ הורידו את האפליקציה AntiSplit M בלחיצה כאן, או הורדה ישירה בטלגרם כאן. כמובן התקינו אותה.
    4️⃣ פתחו את AntiSplit M שהתקנתם. לחצו על השורה השניה בחר מתוך אפליקציות מותקנות (Select from Installed Apps), ובחרו באפליקציה Spotify,
    נווט לאן שתרצו לשמור אותה, ולחצו על שמירה.
    5️⃣ הסירו את האפליקציה ספוטיפיי, זאת שמותקנת לכם על המכשיר.
    6️⃣ פתחו את ReVanced Manager שהתקנתם, (אשרו את מה שהאפליקציה מבקשת לאשר, זה בסדר לגמרי).
    גשו ללשונית האמצעית Patcher 🔧, > לאחר מכאן Select an app, > לאחר מכאן לחצו על (למטה בצד יש כפתור) Storage, > נווטו לקובץ Spotify שיצרתם בשלב 4 ובחרו בו, > לחצו על Patch 🔧.

    המתינו... 💫

    לחצו על Install ⬇️, או שמרו את הקובץ ושתפו לחברים..

    תהנו.

    אנדרוטיפס
    בלוג ישראלי למדריכים וטיפים מקצועיים למשתמשי אנדרואיד • @AndroidTipsIL

    אפליקציות להורדה

  • מדריך | יוצרי גירסאות לנגני אנדרואיד? כנסו.
    למה באתיל למה באתי

    אז ככה:

    • קודם כל תשאבו קושחה. תעשו רוט. תורידו וויפי וסמלים. ע''י המדריך [הזה](https://mitmachim.top/topic/73438/מדריך-הכשרת-נגני-אדרואיד-8-מא-ועד-ת-מדריך-שלא-נראה-(כמותו)
    • אתם מעוניינים להוסיף תמונת פתיחה משלכם? לשינוי קובץ הלוגו תסתכלו במדריך [הזה](https://mitmachim.top/topic/35263/מדריך-עריכת-קובץ-logo-bin-עריכת-לוגו-למכשירי-mtk
    • לעריכת תמונת ההפעלה בקובץ הסיסטם תסתכלו פה ופה.
    • אתם רוצים להוסיף את השם שלכם להגדרות >מידע? את המייל שלכם? כנסו לפה
      זהו בעיקרון.
      זה מה שכל אחד שמעוניין להתעסק ולהכשיר נגני אנדרואיד צריך לדעת.

    יום טוב ובשורות טובות!

    מדריכים - אנדרואיד למה באתי

  • מדריך | רוט לג'לי סטאר | המדריך המלא!
    למה באתיל למה באתי

    אז ככה.
    נעשה את זה קצר.

    אני לא לוקח אחריות על כלום.
    נא להשתמש בזהירות.
    לא ממליץ למתחילים.

    מדריך ארוך. קשה ומסובך.

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

    גירסא מלאה לג'לי סטאר מהדרייב הראשי של יוניהץ (צריך גישה)

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

    עושים רוט למכשיר ע"י תיקון הבוט וביטול אימות חתימה vebmta.

    קרדיט למדריך @משה-144

    מדריך רוט למכשירי MTK באמצעות קובץ BOOT.IMG

    בשונה מהחברות המוכרות שקיים כמעט עבור כל המכשירים twrp ומדריך מפורט איך לעשות רוט.
    במכשירי mtk לעומת זאת בעיקר בגלל השוק הסיני הזול וריבוי הדגמים אין כל כך הוראות מפורטות איך לעשות רוט, אז היום נלמד איך לעשות רוט למכשירי MTK
    המדריך הנוכחי הוא רק למכשירים שיש לכם עבורו רום

    ההוראות כאן הם לרוב המכשירים עם אנדרואיד 6 עד 11

    באנדרואיד 12 ומעלה המכשיר עלול לא להידלק אחרי ביצוע התהליך הבא, תוכלו לנסות לעשות רוט באמצעות צריבת בוט מושרש ללא ביטול אימות ה vbmeta.

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

    המדריך רלוונטי אמנם למרבית מכשירי mtk אבל ממש לא לכולם.

    לכן קריטי שיהיה לכם גיבוי מלא ותקין למקרה של תקלה, אל תמשיכו במדריך בלי

    אז בשביל לעשות את הרוט נזדקק ל:
    1: מכשיר אנדרואיד עם מעבד mtk וניפוי באגים פעיל.
    2: רום מקורי או שאוב של המכשיר, מתוכו נחלץ את קובץ ה boot.img ובמידה וקיים אז גם את הקובץ vbmeta.img (קיים רק באנדרואיד המתקדמים 9/10+)
    3: אפליקציית magisk מכאן
    4: adb להורדה מכאן
    5: דרייברים להורדה מכאן
    6: נפעיל אפשרויות מפתחים ונאשר ניפוי באגים וביטול נעילה של oem
    (למי שלא יודע איך פותחים אפשרויות מפתחים אז כך, נכנס להגדרות>מידע על הטלפון>נלחץ על השורה האחרונה (גירסת build) 7 פעמים, כעת נוסף בהגדרות אפשרויות מפתחים, בשביל להגיע אליו נכנס להגדרות > מערכת > מתקדם > אפשרויות מפתח, ושם צריך לסמן כנ"ל המיקום של האפשרויות מפתחים שונה מכשיר למכשיר ,כתבתי כפי המיקום שזה אצלי)
    שימו לב כי הרבה פעמים במכשירי mtk המכשיר לא מזוהה במחשב במצב פסטבוט גם אחרי התקנת דרייברים, במידה וזה יקרה תצטרכו להשתמש בלינוקס שהבאתי כאן
    (אם נשתמש בלינוקס לא נזדקק לadb ודרייברים.)

    תיקון ה boot.img

    נעתיק את קובץ ה boot.img שחלצנו מתוך הרום אל זיכרון המכשיר,
    נתקין את אפליקציית magisk שהורדנו,
    נפתח את האפליקציה
    במידה ומופיע ליד ramdisk המילה "כן" כמו בתמונה הבאה, נוכל להמשיך במדריך, אם מופיע "לא" אז תיקון ה boot.img לא יעזור ותצטרכו לתקן את ה recovery,
    Screenshot_20210811-224506.jpg
    נבחר באפליקציה התקנה כמו שמסומן בתמונה הבאה,
    Screenshot_20210708-235927.jpg
    נבחר בחר והתקן קובץ
    Screenshot_20210709-000548.jpg
    ננווט בזיכרון המכשיר ונבחר את קובץ ה boot.img
    אחר כך נלחץ על :
    Screenshot_20210709-000833.jpg
    נחכה שהאפליקצייה תסיים לתקן את הקובץ , בסיום אמור להופיע אישור למעלה : בוצע!
    Screenshot_20210811-223548.png
    כעת האפליקציה יצרה boot.img מושרש בתיקיית ההורדות, השם של הקובץ המתוקן אמור להיות בערך כך magisk_patched-23000_hhsrc.img
    נשנה את השם של הקובץ ל: boot.img בשביל הפקודה בהמשך.

    כעת הגענו לשלב העיקרי פתיחת bootloader והפלשת הרוט
    ‏את זה נעשה באמצעות כמה פקודות ב adb

    הוראות ל adb

    חדש: כלי עזר להקלה על התהליך - ראו כאן , ניתן כמובן להמשיך בתהליך דלהלן :
    בווינדוס נחלץ את ה adb לשולחן העבודה, נתקין את הדרייברים,
    כעת נעתיק אל תיקיית ה ADB שבשולחן העבודה את ה boot.img המתוקן שבתיקיית ההורדות במכשיר. ובמידה וקיים אז גם את הקובץ vbmeta.img המקורי,
    נפתח את חלון הפקודה על ידי פתיחת הקובץ cmd-here.exe.
    מכאן ואילך כפי הפקודות להלן.

    בלינוקס המובא כאן:
    נעלה את הלינוקס כפי שמופיע במדריך
    נכניס מראש בתוך און קי (רצוי לא באותו און קי של הלינוקס) את הקבצים boot.img ו vbmeta.img וקובץ טקסט עם הפקודות.
    נפתח טרמינל בנתיב התיקיה של הקבצים על ידי שנלחץ בתוך התיקיה עם הקבצים על מקש ימני ו פתח טרמינל בנתיב זה (באנגלית) ושם נריץ את הפקודות דלהלן.

    הרוט בפועל

    מכאן ואילך התהליך דומה בווינדוס ולינוקס,
    נחבר את המכשיר למחשב נבחר את סוג החיבור למחשב בחלון ההתראות "העברת קבצים"
    כעת נריץ בחלון הפקודה/טרמינל את הפקודה:
    adb shell
    כעת אמור לעלות הודעה במכשיר האם לאשר ניפוי באגים, ונאשר כמובן,
    (לפעמים בשלב הזה כיון שנכנסנו למצב shell עם הפקודה הקודמת, הפקודות הבאות לא יעבדו, הפיתרון הוא או לסגור את ולפתוח מחדש את חלון הפקודה/הטרמינל, או להריץ את הפקודה exit ואז לעבור לפקודה השנייה)
    כעת נבדוק אם המכשיר מחובר טוב באמצעות הפקודה:
    adb devices
    אם המכשיר מחובר טוב יופיע שם המכשיר עם id....
    נעביר את המכשיר למצב פסטבוט:
    adb reboot bootloader
    נבדוק אם מחובר טוב:
    fastboot devices
    במידה וכן תמשיכו לפקודה הבאה, במידה ולא לא תהיה ברירה ותצרכו להשתמש בלינוקס שמובא במדריך הזה.
    נפתח bootloader באמצעות הפקודה
    fastboot oem unlock
    לרוב הפקודה הזאת מתאימה למכשירי mtk עם אנדרואיד נמוך
    ובמקרה שהפקודה הנ''ל לא עובדת או באנדרואיד 10+ תנסו את הפקודה:
    fastboot flashing unlock
    אחרי הרצת הפקודה יופיע לכם שאלה במכשיר, יש ללחוץ על ווליום עליון לאישור, שימו לב זה מאפס את המכשיר לגמרי, גבו הכל קודם!
    כעת נפליש את הבוט המושרש:
    fastboot flash boot boot.img
    ואת הקובץ vbmeta.img במידה וקיים באמצעות הפקודה:
    fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
    כעת נפעיל את המכשיר:
    fastboot reboot
    אם הכל הלך כשורה המכשיר יעלה עם רוט.
    בהצלחה.

    כעת המכשיר רק עם רוט RO - בלי הרשאת כתיבה, בלי אופציה לערוך את הדברים בפועל.

    אז להתקין במגיסק את המודל ro2rw

    ואז לעשות את המדריך הזה: (המדריך של @מאן-דאמר עם שינוי קטן)

    דרישות

    -המכשיר שעליו אתם רוצים לעבוד מושרש ועם לפחות 5 GB אחסון פנוי
    -אמולטר מסוף לאנדרואיד עדיף להשתמש ב termux (קישור להורדה ישירה מגיטהאב) או באמולטור שיש ב mt mangar
    -התקינו את הקובץ זיפ הזה RO2RW.zip ניתן להתקין דרך twrp או דרך אפליקציית מג'יסק במודלים > התקן מאחסון

    מוכנים?

    אפשר להתחיל
    היכנסו למסוף והקישו

    su
    

    פקודה זו תיתן הרשאות שורש לעמוד הזה
    כעת הקישו

    ro2rw
    

    כעת יעלה לכם המודל ותינתן לכם אפשרות לבחור 1 להמשך ויצירת super חדש ו2 לבירור גודל המחיצות (product/system/vendor) במכשיר שלכם
    להמשך במדריך הקישו

    1
    

    כעת תינתן לכם האפשרות לבחור לאיזה גודל תרצו להגדיל את המחיצות שלכם (ניתן להגדיל לפי אחוזים או לפי מגה בית ספציפי קחו בחשבון שאם אין לכם הרבה ג'יגה במכשיר לא מומלץ להגדיל כ"כ את מחיצת המערכת דבר שיתפוס לכם נפח איחסון אם אתם לא צריכים)
    אני הקשתי

    3
    

    כעת תשאלו אם לאשר את ההגדלה כפי שבחרתם או לשנות 1 לאישור 2 לשנות
    אני הקשתי

    1
    

    כעת ניתנת אפשרות תיקון של הצפנת נתונים המכונה DFE (במילים קצרות זה יכול למנוע בעיות עם הצפנה של מחיצת data ולא לחייב מחיקת נתונים בעת צריבת super להרחבה כאן)
    אולם באפשרות זו יש יתרונות וחסרונות ולכן למי שלא יודע מה הוא עושה אני ממליץ לדלג וללחוץ

    1
    

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

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

    Enter any key to continue
    

    הקישו על כל כפתור כדי להמשיך
    כעת תשאלו האם ברצונכם למחוק אפליקציות מה super שנשאב מהמכשיר שלכם לקבלת רשימת האפליקציות ומחיקתם הקישו 1 לדילוג הקישו 2

    אם לחצתם 1 תקבלו רשימה של אפליקציות מערכת שמותקנות אצלכם מחולקות לפי גודל של האפליקציה להסרה בחרו את המספר שליד האפליקציה ותשאלו האם לאשר מחיקה הקישו 1 לאישור שימו לב לא למחוק אפליקציות שאתם לא בטוחים מה הם עושות לאחר שסיימתם לבחור מה תרצו להסיר הקישו 1 להמשך המדריך

    כעת תשאלו האם ברצונכם ליצור גיבוי למחיצה הישנה של המכשיר לאישור הקישו 1 להמשך הקישו

    2
    

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

    1
    

    והמערכת תייצר עבורכם מחיצה מותאמת אישית לצריבה בכל מכשיר שתרצו!! (מאותו דגם....)
    ושאלה אחרונה שתשאלו האם תרצו לייצר מחיצת vbmate לצורך אימות של הבוטלאודר גם בזה מי שלא מבין אני ממליץ לא להתעסק ולצרוב את ה super רק במכשירים שהוא פתח להם את הבוטלאודר
    ולכן בחרתי

    1
    

    לדלג על השלב הזה
    זהו כעת תמצאו בזיכרון המכשיר בתיקיה הראשית בתיקיה בשם RO2RW_SUPER את המחיצה המותאמת אישית שלכם בשם
    super-rwsparse-fastboot

    תעתיקו את הקובץ למחשב שלכם ותפתחו עם תוכנת הצריבה sp flash tool v6
    https://spflashtools.com/windows/sp-flash-tool-v6-2404

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

    תכבו את המכשיר ותצרבו (יש לי מדריך איך צורבים בפרטות).

    תדליקו את המכשיר (יהיה לכם משפט אדום בקצה אל תתיחסו אליו כרגע)

    תעשו את ההתחברות (לא יהיה לכם wifi לא יהיה לכם Imei אז אל תנסו להגדיר יותר מידי.

    (התצוגה תראה לכם שונה.. אבל אל תתיחסו לזה. זה יעבור בסוף.)

    מכיון שעשינו איפוס אז תתקינו שוב את המגיסק שהתקנתם מקודם ומנהל MT manger)

    עכשיו, תעברו לסופר המקורי שיש לכם תחלצו אותו ע"י zip7 (תחלצו אותו איך שבא לכם. אתם לא צריכים לקמפל. אני הכי ממליץ על zip7) ותנווטו ל/vendor/etc ושם יש קובץ fstab.mt6761 תחלצו אותו ותעתיקו אותו למכשיר.

    תנווטו עם mt ל /vendor/etc במכשיר שלכם ותעתיקו את הקובץ שחילצנו הרגע מהסופר המקורי לתוך המכשיר שלכם. (תתנו לו הרשאות 644 - אם זה לא עושה את זה אוטומטי).
    וזהו. תעשו איפוס מתוך המכשיר דווקא ועכשיו הכל ידלק לכם עם הרשאות כתיבה RW .

    אבל.. אין לכם imei ויש לכם מילים בסינית באנגלית בצד אז תעשו את שני המדריכים האלו והכל יפתר..

    תיקון טקסט סיני במכשיר

    שינוי Imei לג'לי סטאר

    קרדיט ענק ל @נוחעם-fm המטורף שעזר לי מלא במדריך הזה...

    לעוד מדריכים בתגית שלי.
    לצריבת גירסאות למכשיר isralfarkash770@gmail.com

    מדריכים - אנדרואיד למה באתי

  • מדריך | פירוק סופר במחשב! בעריכה
    למה באתיל למה באתי

    אם אי פעם רציתם לצרוב GSI על המכשיר שלכם.. אבל.. מה הבעיה.. שבמכשיר שלכם אין את המחיצות system product
    vendor אלא רק קובץ אחד בשם super ואז אתם מורידים GSI למכשיר ומגלים שאין לכם דרך לצרוב אותו.. אז פותחים AI ואז הAI כותב לכם לנסות לצרוב בפאסטבוט וזה לא עובד..
    אז היום במדריך נסביר איך מפרקים במחשב את הסופר... (לכל האלו שחיפשו בנרות אנדרואיד 15 לM36 אז זה יעזור לכם..)

    אז תורידו את ערכת הכלים הזאת:
    Super Disassembly.zip

    יש בה 3 כלים:

    • simg2img
    • Lpunpack
    • Lpmake

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

    ולמעיישה:

    תחלצו את התקייה ותעתיקו את ה super.img לתוך תקיית simg2img
    תלחץ על מקש ימני ותפתח cmd ותקיש את הפקודה הזאת:

    simg2img super.img super1.img
    

    זה יצור לכם קובץ super1.img.

    אם מופיעה לכם השגיאה הזאת:

    Invalid sparse file format at header magic
    Failed to read sparse file 
    

    אין בעיה. תדלגו על השלב הזה ותעברו ישירות לשלב הבא:

    אח"כ תקחו את הקובץ שנוצר לכם super1 ותעתיקו אותו לתקיית Lpunpack

    שוב פעם תפתחו cmd ותריצו את הפקודה הזאת:

    Lpunpack super.img
    

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

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

    עכשיו תקח את המחיצות שהוא חילץ (3 מחיצות) ותעתיק אותם לתקיית Lpmake.

    עכשיו אנחנו צריכים לדעת מהם הגדלים המדוייקים של המחיצות שלנו. תעשו מקש ימני>מאפיינים>גודל בדיסק - ותעתיקו את המספר המדויק ללא הפסיקים.
    תמונה בספויילר:

    9fceb4f7-1fe0-4441-ac53-7b9735454a70-image.png

    קחו את הקובץ הזה ותדביקו לתוכו את הגודל של כל מחיצה ללא הפסיקים. אם זה מכשיר ללא מחיצות A-B אז להשאיר את המספרים ליד b ריקים.

    system_a.img  	        620957696
    system_ext_a.img	    1227198464
    system_ext_b.img	    0
    product_a.img	        1368666112
    product_b.img	        0
    vendor_a.img	        269713408
    vendor_b.img	        0
    system_b.img	        56127488
    

    ולתוך זה צריכים להכניס עוד שני פרמטרים:

    1. סיכום של כל גדלי המחיצות. פשוט לפתוח מחשבון ולפתוח מאפיינים ולחבר את כל גדלי המחיצות ביחד ואז להכניס את זה לתוך device super .
    2. זה קצת יותר מסובך .. זה בעיקרון הגודל הכולל של מחיצת סופר ללא קשר לגדלי המחיצות הרגילות. לכן, או שתקח את הגודל של מחיצת הסופר הנוכחית או שתבחר גדול. (בד"כ מחיצות סופר במכשירים עם זיכרון קטן הם בסביבות ה4 ג'יגה.. אז תעשה 4 ג'יגה) ואת הפרמטים הללו תכניס לgroup main.

    שזה יראה כך:

    --device super:4294967296  
    --group main:4330033152
    
    

    עצרתי באמצע כי לא הצלחתי לפשט את המשך המדריך. אשמח אם יש למישהו זמן לפשט אותו ברמה גבוהה של עברית. @מישהו12

    מדריכים - אנדרואיד למה באתי

  • מדריך | יש לכם מכשיר עם רוט? ככה תוכלו להתקין אפליקציות ללא מתקין החבילה המובנה
    למה באתיל למה באתי

    יצרתי אפליקציה שבעצם מחליפה את מתקין החבילה הרגיל ויוצרת אפשרות של מתקין חבילה חדש שממש דומה למתקין החבילה המובנה.

    אפשר להגדיר בפעם הראשונה פתח באמצעות "מתקין חבילה ברוט" ואז כל APK שתפתח מכל סייר אוטמטית יפתח למתקין החבילה הזה ובעצם יעקוף את מתקין החבילה המובנה. יש התקנה ברקע והתראה שהתהליך הסתיים. זה תומך מקשים.

    כמובן שזה רק למכשירים עם רוט. כמובן הרשאות מגיסק.

    עיצוב מינימליסטי עדין! שוקל רק 4 mb!

    אפשר לתמוך ולהוקיר תודה https://ko-fi.com/israelfarkashfilter

    app-release.apk

    Gemini_Generated_Image_6o0fuy6o0fuy6o0f.png

    מדריכים - אנדרואיד למה באתי

  • מדריך | המדריך שכולם חיכו לו - עריכת סיסטם לאנדרואיד ע''י WSL
    למה באתיל למה באתי

    אחרי שעות ארוכות של התכתבות עם צאט GPT ואחרי שעות ששיגעתי את כל המשתמשים בפורום הצלחתי להגיע למגומר.

    ראה כאןוכאן וכאן

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

    הוספתי גם בהתחלה מדריך איך מתקינים WSL2 כי הבנתי שהמדריך שיש בפורום הוא לא עדכני.

    אז בואו נתחיל:

    התקנת WSL על ווינדוס

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

    wsl --install
    

    זה בעצם מתקין את WSL.

    אם היה לכם כבר WSL אז תפעילו אותו ע''י הפקודה הזו:

    wsl --update
    wsl --set-default-version 2
    

    זה אמור להפעיל לכם את המחשב אוטמטית באם לא עשו את זה בעצמכם.

    לאחר הפעלת המחשב נתקין את אובנטו ע''י הפקודה הזו:

    wsl --install -d Ubuntu
    

    אחרי ההתקנה תפעילו את אובנטו ואז הוא יבקש ממכם להקיש את שם המשתמש ואחרי שהוא יאשר את שם המשתמש אז הוא יבקש להקיש סיסמה, תקישו את הסיסמה (אתם לא תיראו אותה (לא להילחץ)

    תמונה

    f5cf7386-6756-412a-98d7-c545bac0f045-image.png ||
    וזהו. יש לכם WSL מותקן.

    אם אתם בווינדוס 11 אז יש לכם כבר ממשק גרפי מותקן.

    אבל לייתר ביטחון תבדקו האם מותקנת אצלכם WSL 2 ע''י הפקודה הזו:

    wsl -l -v
    

    באם כתוב לכם גירסא 1 אז תעדכנו אותו לגירסא 2 ע''י הפקודה הזו:

    wsl --set-version Ubuntu 2
    

    ||אם אתם בווינדוס 10 אז תבדקו איך אתם מתקינים ממשק גרפי.

    כדי להפעיל את הלינוקס מעכשיו מפעילים רק דרך פה cdf48dc8-4ea5-482a-863c-55aea3d541de-image.png

    אוקי. לפני שנתקדם להתקנת אפליקציות גרפיות נבדוק שהמערכת מעודכנת:

    sudo apt update && sudo apt upgrade -y
    

    התקנת התוכנות המומלצות

    לאחר שראינו שהמערכת מעודכנת נתקדם להתקנה:

    אני הכי אהבתי את סייר הקבצים nautilus

    מתקינים אותו ע''י הרצה בWSL

    sudo apt install nautilus dbus-x11 -y
    

    כותבים את הסיסמה (כמו בכל פעם שמשתמשים באופצית הניהול SUDO)

    ומחכים.. השורות רצות.. והזו. מותקן.

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

    nautilus .
    

    אוקי. אז עכשיו יש לנו את סייר הקבצים מותקן בהצלחה אבל מי ששם לי שאין לנו במקש ימני את האופציה של פתיחת הטרמינל. אז נתקין את תוסף הטרמינל ע''י:

    sudo apt install nautilus-extension-gnome-terminal -y
    

    ואז בעצם אמור להתקין לכם את תוסף הטרמינל.

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

    תבדקו בחנות האפליקציות של מייקרוספט האם ווינדוס טרמינל (Windows Terminal) מותקן לכם באם לא תתקינו (לי היה מותקן). ואז תתקינו בטרמינל של WSL את התוסף לחיבור בניהם ע''י הפקודה הזו:

    sudo apt install nautilus-extension-gnome-terminal
    

    באם זה לא עבד לכם אז תפעילו את הפקודה הזו: nautilus -q
    ותפעילו מחדש את nautilus

    באם יש לכם שגיאה כזו d9408843-dc71-4476-81bc-85e79e66e130-image.png אז תפעילו כל פעם את האפליקציה ע''י הקשה של זה ואז זה יפתח מצוין.

    export 
    DISPLAY=:0
    export $(dbus-launch)
    nautilus .
    

    כדי לערוך את קובץ הבלוויד פרופ אז נתקין את עורך הטקסט gedit ע''י הפקודה הזו:

    sudo apt update
    sudo apt install gedit
    

    ומפעילים אותו ע''י הפקודה הזו:

    gedit .
    

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

    כדי להעביר דברים מהמחשב לWSL אז פותחים את סייר ווינדוס הרגיל בוחרים את הקובץ שאנחנו רוצים מעתיקים אותו כרגיל נכנסים לתקייה הזו
    254eee80-dd73-422b-a07c-52807b879b23-image.png
    ואז לתקיית home
    3f43166b-abec-41ba-a285-5bdbeeebfd58-image.png
    ומדביקים איפה שאתם רוצים ואז אתם רואים את הקבצים הללו בתוך WSL. וכן להיפך.

    אז אחרי שהצלחנו להתקין את הWSL את האובנטו את סייר הקבצים את עורך הטקסט ולמדנו איך מעתיקים לWSL את הקבצים שאנחנו מעוניינים לערוך אז נעבוד ל"בפועל" איך בפועל מפרקים את הסיסטם.

    הפקודות בפועל

    אז דבר ראשון לפתוח תקייה באותה תקייה של הסיסטם אני ממליץ לקרוא לה folder כי כל שאר הפקודות ילכו סביבה לפתוח את הטרמינל הפנימי של הסייר קבצים (לא הרגיל של WS!) ע''י מקש ימני.
    ואז להקיש:

    sudo mount -t ext4 -o loop system.img folder
    

    ואז להקיש את הסיסמה שבחרתם בהתחלה. וזהו יש לכם את הסיסטם מפורק.

    אם אתם רואים שהסיסטם מפורק אבל אתם בפועל לא יכולים לערוך אותו אז תריצו את הפקודה הזו ולשנות את שני ה user לשם המשתמש שלכם:

    sudo chown user:user folder 
    

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

    אחרי שמסיימים לערוך את הסיסטם והכל אז מקמפלים אותו חזרה לקובץ הסיסטם ע''י הפקודה הזו:

    sudo umount system.img
    

    ולבדוק בסיום הקימפול שאין שום שגיאות נעשה את זה ע''י הפקודה הזו:

    e2fsck -yf system.img
    

    וכדי לערוך את הבולוויד פרופ תעשו את זה ע''י הפקודה הזו:

    sudo gedit build.prop
    

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

    המדריך נכתב על ידי אחרי שעות של ניסוי וטעיה ובעזרתם הגדולה של צאט GPT @מישהו12 @Harwona
    מקור מקור

    ושתשתמשו בזה להכשיר ולא לפרוץ!

    יום טוב.

    תגובות למדריך רק כאן

    @צוות-פיקוח @יוסי-מחשבים אם אפשר להעביר למדריכים

    מדריכים - אנדרואיד למה באתי

  • מדריך | עריכת מידע מערכת בBuild.prop
    למה באתיל למה באתי

    אתם מעוניינים לערוך את ההגדרות ולהוסיף את שמכם או את שם החברה במידע המערכת?
    תמיד רציתם לערוך את מה שכתוב בהגדרות>מידע? יוצרי גירסאות? פה תוכלו להכניס את שמכם בכל מקום בגירסא...

    חובה רוט! או עריכה בלינוקס.
    אז נווטו לsystem/Build.prop עם אחד מסיירי הרוט הנפוצים ותערכו בו את השינויים שאתם רוצים.
    שימו לב! אם תעשו טעויות אז המכשיר לא ידלק! שימו לב לפני שיש לכם גיבוי.

    אז לתכל'ס:

    כדי לערוך את מה שנמצא בלשונית - דגם מכשיר אז לערוך את השורות האלו:

    ro.product.model=שם_המכשיר_שאתה_רוצה
    ro.product.brand=שם_המותג_שאתה_רוצה
    ro.product.manufacturer=שם_היצרן_שאתה_רוצה
    

    לדוגמא:

    ro.product.model=Galaxy S25 Ultra
    ro.product.brand=Samsung
    ro.product.manufacturer=Samsung Electronics
    

    גרסת האנדרואיד (זה לא ישפיע על כלום במערכת):

    ro.build.version.release=14
    

    מזהה בנייה:

    ro.build.id=SP1A.210812.016
    

    שם מותאם אישית שיופיע תחת "מספר Build"

    ro.build.display.id=Custom Build by [השם שלך]
    

    גרסת בנייה מותאמת אישית

    ro.build.version.incremental=2025.03.18
    

    מידע מותאם אישית:

    ro.build.author=Your Name  
    ro.custom.version=1.0  
    ro.build.description="גרסה מותאמת אישית על ידי למה באתי"
    

    לתגובות למדריך הגיבו כאן

    מדריכים - אנדרואיד למה באתי

  • מדריך | המסע שלי לג'אווה - פרק 1
    למה באתיל למה באתי

    אז ככה, אני מתחיל ללמוד ג'אווה. אז החלטתי לשתף את האנשים איך אני לומד ושאנשים יהנו ממה שאני עושה לעצמי.

    אז ככה: אני רוצה להוציא את המיטב מכלי הAI השונים. כולל הסבר יותר מפורט. כולל תרגול שאלות בשלל וריאציות. וכו'.
    אז בבקשה.
    הרי שלכם לפניכם.

    סרטון היוטיוב שאני התחלתי ללמוד ממנו:

    https://youtu.be/KDuse0mmTm4?si=g-UxEcfbLKgBhJi1

    סיכום של השיעור מפורט:

    https://docs.google.com/document/d/1ml9lHda2scrT2iJdN*****gfgwDwOg-LqGK3OnSwAAjUn30g/edit?usp=drivesdk

    תרגול שאלות מפי שילוב של כלי הAI השונים.

    אני אישית שלחתי את כל השאלות לAI ואמרתי לו שיבדוק לי את התשובות שכתבתי..

    # תרגול Java – שיעור 1

    סוגי משתנים ופקודות פלט

    חלק א׳ – בחירה מרובה (אמריקאי)
    1. איזה סוג משתנה מתאים למספר שלם 15 ?
      א. double
      ב. String
      ג. int
      ד. boolean

    1. איזה סוג משתנה מתאים למספר 7.5 ?
      א. int
      ב. double
      ג. char
      ד. boolean

    1. איזה סוג משתנה יכול להכיל רק ערך אמת או שקר?
      א. int
      ב. String
      ג. boolean
      ד. char

    1. איזה סוג משתנה מתאים לטקסט חופשי?
      א. char
      ב. int
      ג. String
      ד. double

    1. איזה סוג משתנה מתאים לאות אחת בלבד?
      א. String
      ב. int
      ג. char
      ד. boolean

    חלק ב׳ – נכון / לא נכון
    1. int יכול להכיל מספר עם נקודה עשרונית.
      נכון / לא נכון

    1. double משמש למספרים עם נקודה עשרונית.
      נכון / לא נכון

    1. char נכתב בתוך מירכאות כפולות.
      נכון / לא נכון

    1. String נכתב בתוך מירכאות כפולות.
      נכון / לא נכון

    1. boolean יכול להכיל את הערך "true".
      נכון / לא נכון

    חלק ג׳ – השלמה (איות מדויק!)
    1. השלם את סוג המשתנה המתאים:

    _____ age = 18;


    1. השלם את סוג המשתנה המתאים:

    _____ price = 12.99;


    1. השלם את סוג המשתנה המתאים:

    _____ letter = 'C';


    1. השלם את סוג המשתנה המתאים:

    _____ name = "Moshe";


    1. השלם את סוג המשתנה המתאים:

    _____ isReady = true;


    חלק ד׳ – פקודות פלט
    1. מה עושה הפקודה System.out.print() ?
      א. מדפיסה ויורדת שורה
      ב. מדפיסה ונשארת באותה שורה
      ג. מדפיסה רק מספרים
      ד. לא מדפיסה כלום

    1. מה עושה הפקודה System.out.println() ?
      א. מדפיסה בלי לרדת שורה
      ב. מדפיסה ויורדת שורה
      ג. מדפיסה רק טקסט
      ד. גורמת לשגיאה

    מה יודפס למסך?

    System.out.print("Hi");
    System.out.print("Java");

    מה יודפס?


    System.out.println("Hi");
    System.out.println("Java");

    מה יודפס?


    int x = 4;
    int y = 6;
    System.out.println(x + y);

    מה יודפס?

    פירסמתי את זה פה כדי שתוכלו להגיב.

    לא אכפת לי מה יהיו התגובות. אני עושה את זה בשבילי... והחלטתי לשתף.. כי למה לא?

    Screenshot_20251218_013356_YouTube.jpg

    Screenshot_20251218_012732_YouTube.jpg

    מדריך של @אליר325000 על ג'אווה שממש הולך לפי הסרטון.עם אותם דוגמאות וכו'.

    https://mitmachim.top/post/654191

    עזרה הדדית - JAVA

  • הצעת ייעול | סינדרום חבר מביא חבר
    למה באתיל למה באתי

    @אביעד יש מטרדים.
    לא נתקלת במקרה שאתה אומר למישהו שיש על זה נושא בפורום אז הוא לא יודע לפתוח חיפוש ולהגדיל ראש אלא הוא יטחן לך את השכל עד שתשלח לו (בפרטי, במייל, ועוד.. )

    כמו"כ כל עניין הדיס לייק. כל ילד בן 5 רוצה שיהיה לו כמה שיותר מונטין ויש סיטואציה שנכנסה לפורום שמתי שמישהו מקבל דיס הוא אשכרה שואל באותו נושא למה קיבלתי דיס...??
    סתום את הפה! ותעבוד על עצמך שלא תקבל עוד פעם!!
    כמו"כ כל תינוק שחושב שהוא מבין בצריבות ובהכשרות (זה שקראת כמה מדריכים זה לא אומר שלא בטוח שלא תצא תקלה תחת ידך..) יש מכשירים מאוד מסובכים שגם לממש מומחים יהיה קשה לעבוד עם זה..
    אם לא התנסת עם המכשיר הזה ספציפית אל תעזור..
    ||סתם דוגמא: תחת ידי עברו qin 1+, f22 pro, f21 pro, show, cat flip s22, m39, jeely star Titan pocket ועוד.. אז אני יודע איך להתעסק איתם!! ||

    בנוגע לנגנים זה יותר פשוט, יותר קל להתעסק עם נגנים (עם יש לך גיבוי יש סיכויים ממש קטנים שתקבל בריק) לכן אנשים עוזרים גם אם לא מכירים את הנגן הזה ספציפית....
    אבל פתאום אני רואה פוסט שמישהו ממליץ לנגן m36 קיידרואיד.. תגיד, אתה מבין בנגנים? עברו מתחת ידך נגנים? אתה יודע איך נראת frp? אתה יודע מה זה ריקוברי???
    איך אתה ממליץ על כזה דבר..?? (ועוד אומר שאתה יכול לעזור לו מרחוק) עם החוסר ידיעה שלך והרצון לקבל מוניטין אתה תכשיל פה אנשים ולך תדע כמה עוד יחשבו שזה בסדר!!

    ואני רק באתי אלא להאיר..

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

    אופן השימוש בפורום

  • שיתוף | אפליקציה שיצרתי להשבתת טאצ' למכשירי חצי טאצ'
    למה באתיל למה באתי

    מכיוון שיש הרבה פוסטים בפורום על השבתת טאצ' למכשירי חצי טאצ'.

    לדוגמא: זה וזה

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

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

    והיא עובדת ככה:

    א. בוחרים סיסמה לאפלקיציה וזה הסיסמה שהולכת להיות איתכם כל הזמן...
    ב. מבקשים הרשאות נגישות.
    ג. בוחרים האם להשבית את הטאצ' או לא.
    וזהו! יש לכם חסימה על הטאצ.

    האפליקציה תומכת מקשים לחלוטין.
    כמו"כ כעת האפליקציה ניתנת להסרה (אם ירצו שתהיה כמנהל אז נסדר את זה)

    נוסה בהצלחה מרובה על מכשיר שיאומי f22 pro.

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

    https://ko-fi.com/s/5cf88dfd9c

    שימו לב!

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

    יחיךגזXLD.png

    צילומי מסך:

    Screenshot_20250801-151752.png !
    Screenshot_20250801-153807.png

    אפליקציות להורדה

  • שיתוף | כל הכלים לפיתוח אנדרואיד - MTK - כעת באופליין
    למה באתיל למה באתי

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

    אני נגיד אדם שעובד מלא עם מחשבי אופליין. אז פשוט אתה מוריד את התקייה הזאת ומסתובב איתה באונקי (בדומה לדיסק טכנאים 😉 ) ועושה את כל מה שאתה רוצה מכל מחשב.
    ולקינוח הורדתי את המדריכים - שגם את המדריכים יהיה לכם באופליין.

    https://drive.google.com/drive/folders/17eh2SMx*****XZYR2v661QHRtQ8yzcSxSWSYh?usp=sharing

    נא לא להפיץ את התקייה הזאת ללא כוכביות וללא הפנייה לפוסט הזה. ממש תודה!

    התקייה בעריכה:

    התיקיות שהולכות להעלות זה: רוט. עריכת אזהרת הבוטלואדר. פתיחת בוטלואדר. פירוק וקימפול סיסטם בלינוקס ובווינדוס. עריכת לוגו בהפעלה גם בlogo.bin וגם בסיסטם עצמו. ותתנו לי עוד רעיונות 😉

    השאלה אם אנשים צריכים את זה והאם זה שווה את המאמץ... אז בואו תראו לי האם זה שווה...

    עזרה הדדית - אנדרואיד

  • מדריך | לפני שאתם מתעסקים עם אנדרואיד חובה לקרוא את זה!!
    למה באתיל למה באתי

    א1. גיבוי קושחה. הרבה מכשירים נהרסו כי עובדים על מכשיר אנדרואיד לא מוכר ואז קשה להשיג רום חדש.
    אז שימו לב שיש לכם גיבוי אפשר לחפש פה בפורום . באינדקס הגירסאות. בxda. ובפורום הרוסי. או עם זה מעבד mtk כככללות המכשירים הזולים מעלי אקספרס. אז אפשר לשאוב לו את הקושחה ע''י המדריך של חגי. (שימו לב, יש באג במדריך שמתי ששואבים את צריך את הערך של השאיבה אבל לא תמיד הדרך שהוא מביא למצוא את הערך היא נכונה, ויכול להיות סיטואציות ששאבת גירסא הכל טוב ויפה., אבל, בפועל יש לך גירסא לא נכונה שיכולה לדפוק את המכשיר. לכן יש עוד מדריך שלוקח עוד כמה דקות אבל אני ממליץ ממש להשקיע עליו עוד כמה דקות כדי לא להידפק. תחפשו בפורום.
    2. לפתוח בוטלואדר. אפשר ע''י פאסטבוט או ע''י עוד כלי שהובא כאן בפורום. (שימו לב שזה מאפס את המכשיר).

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

    אשמח עם תוסיפו עוד..

    מדריכים - אנדרואיד למה באתי

  • מדריך | ייצוא סקריפט פייתון לתוכנה exe
    למה באתיל למה באתי

    למה אנחנו בכלל צריכים לייצא סקריפט פייתון לקובץ הפעלה (EXE)?
    הפעלת סקריפט פייתון במחשב רגיל כרוכה בדרך כלל בשני דרישות עיקריות:

    התקנת פייתון: על המחשב להיות מותקן מפרש (אינטרפרטר) של פייתון.

    התקנת חבילות: רוב הסקריפטים המודרניים מסתמכים על חבילות צד שלישי (ספריות קוד חיצוניות) שאינן חלק מההתקנה הבסיסית של פייתון, ודורשות התקנה נפרדת.

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

    כאן נכנס לתמונה היתרון המשמעותי של ייצוא סקריפט פייתון לקובץ הפעלה עצמאי (EXE). קובץ EXE הוא חבילה המכילה את כל הדרוש להפעלת הסקריפט – פייתון עצמו, כל החבילות הנחוצות, והסקריפט שלכם – הכל ארוז בקובץ אחד. זה מאפשר:

    פשטות שימוש למשתמשי קצה: המשתמש פשוט מפעיל את קובץ ה-EXE בלחיצה כפולה, ללא צורך בהתקנות מקדימות או ידע טכני.

    ניידות: ניתן להעביר את קובץ ה-EXE בקלות באמצעות דיסק און קי, דוא"ל או כל אמצעי אחר, ולהפעיל אותו על כל מחשב מבוסס Windows.

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

    מקצועיות: ייצוג התוכנה שלכם כיישום עצמאי מעניק לה מראה ותחושה מקצועיים יותר.

    ייצוא סקריפט פייתון לקובץ EXE באמצעות PyInstaller: מדריך שלב אחר שלב
    PyInstaller היא חבילת פייתון פופולרית ועוצמתית המאפשרת לארוז סקריפטים מבוססי פייתון, יחד עם כל התלויות שלהם, לקובץ הפעלה עצמאי עבור מערכות הפעלה שונות, ובפרט Windows (קובץ EXE).

    שלב 1: התקנת PyInstaller
    ראשית, עלינו להתקין את PyInstaller. פתחו את הטרמינל (Terminal) או את שורת הפקודה (CMD) במחשב שלכם והריצו את הפקודה הבאה:

    python -m pip install pyinstaller
    

    פקודה זו תוריד ותתקין את PyInstaller .

    שלב 2: הכנת קובץ הסקריפט וקובץ האייקון (אופציונלי)
    קובץ הסקריפט (.py): ודאו שקובץ הסקריפט שלכם (לדוגמה, MyProgram.py) נמצא במיקום נוח וקל לגישה במחשב שלכם. מומלץ למקם אותו בתיקייה ייעודית שתשמש אתכם לתהליך הייצוא.

    קובץ אייקון (.ico): אם ברצונכם להוסיף אייקון מותאם אישית לתוכנה שלכם, עליכם להכין קובץ אייקון בפורמט .ico. תוכלו לעצב אייקון משלכם, לבקש מבינה מלאכותית ליצור עבורכם, או להמיר קובץ תמונה קיים (כמו PNG) לפורמט ICO באמצעות כלים מקוונים דוגמת Convertio. חשוב: תנו לקובץ האייקון שם קצר וברור באנגלית (לדוגמה: app_icon.ico) ומקמו אותו באותה התיקייה שבה נמצא קובץ הסקריפט.

    שלב 3: הפעלת PyInstaller משורת הפקודה
    כעת נבצע את תהליך הייצוא בפועל:

    פתיחת שורת הפקודה (CMD) כמנהל: חפשו "CMD" בתפריט ההתחלה של Windows, לחצו עליו קליק ימני ובחרו באפשרות "הפעל כמנהל" (Run as administrator). פעולה זו תבטיח שיש לכם את ההרשאות הנדרשות.

    ניווט לתיקיית הסקריפט: השתמשו בפקודת cd (change directory) כדי לעבור לתיקייה שבה שמרתם את קובץ הסקריפט וקובץ האייקון.
    לדוגמה, אם קובץ הסקריפט שלכם נמצא בנתיב C:\Users\user\Desktop\MyPythonApp, הפקודה תהיה:

    cd C:\Users\user\Desktop\MyPythonApp
    

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

    pyinstaller --noconsole --onefile --icon=app_icon.ico MyProgram.py
    

    --icon=app_icon.ico: פרמטר זה מציין את הנתיב לקובץ האייקון (.ico) שיוצג עבור היישום המוגמר. החליפו את app_icon.ico בשם הקובץ האמיתי של האייקון שלכם.

    MyProgram.py: זהו הנתיב המלא או השם של קובץ הסקריפט הראשי שלכם בפייתון. החליפו את MyProgram.py בשם הקובץ האמיתי של הסקריפט שלכם.

    דוגמה מלאה: אם קובץ הסקריפט שלכם נקרא IconExtractorGUI.py וקובץ האייקון שלכם נקרא my_great_icon.ico, הפקודה תיראה כך:

    pyinstaller --noconsole --onefile --icon=my_great_icon.ico IconExtractorGUI.py

    שלב 4: מציאת קובץ ה-EXE המוגמר
    לאחר הרצת הפקודה, PyInstaller יתחיל בתהליך האריזה. תהליך זה יכול להימשך מספר דקות, תלוי בגודל הסקריפט ובכמות החבילות שהוא כולל. במהלך התהליך, תראו פלט רב בשורת הפקודה.

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

    build/ (תיקייה זו מכילה קבצים זמניים וקבצי בנייה).

    dist/ (קיצור של "distribution").

    קובץ ה-EXE הסופי והמוכן להפעלה יימצא בתוך התיקייה dist/. שם הקובץ יהיה זהה לשם קובץ הסקריפט המקורי שלכם (לדוגמה, MyProgram.exe או IconExtractorGUI.exe).

    זה הכל! כעת יש לכם קובץ EXE עצמאי ומוכן לשיתוף ולהפעלה, ללא צורך בהתקנות פייתון או חבילות נוספות על מחשב היעד.


    זה אחרי עריכה של AI.. זה מה שאני כתבתי ואז שלחתי לAI:

    אז למה אנחנו בכלל צריכים לייצא את הסקריפט לקובץ exe?

    כדי להפעיל סקריפט במחשב רגיל צריך שיהיה פייתון מותקן. ולכל סקריפט בפני עצמו (תלוי בפרטי הסקריפט) ישנם עוד כמה סוגי חבילות שצריכים להתקין..
    אז למה פשוט לא להסביר לכל סקריפט איזה חבילות להתקין ואיך עושים את הכל..?
    כי אם אתה רוצה להשתמש בחדר מחשבים - ואין לך כח כל פעם להתקין את כל החבילות.. או שאתה רוצה לשלוח את התוכנה הזאת לחבר שלך שאין לו שום ידע במחשבים והוא לא יודע להתקין פייתון ועוד ועוד...

    אז היום נסביר איך עושים את זה..

    תתקין את חבילת הפייתון לייצא ל exe ע"י הפקודה הזאת:

    python -m pip install pyinstaller
    

    תקח את הסקריפט פייתון שיש לך - שהוא אמור להסתיים בשם Py.

    ותעתיק אותו למקום נוח במחשב שלך שיהיה נח לגשת אליו מהCMD..

    עכשיו תעצב אייכון יפה (או תבקש מבינה מלאכותית) לתוכנה שלך ותמיר אותה לICO ע"י האתר הזה או ע"י מפעל הפורמטים.
    ותקרא לו בשם באנגלית.

    תפתח CMD כמנהל ותנווט ע"י פקודת cd לתקייה שבה קובץ הזיפ נמצא שלי זה היה בנתיב הזה: C:\Users\user\Desktop\appstore
    אז הפקודה תהיה כזאת:

    cd C:\Users\user\Desktop\appstore
    

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

    pyinstaller --noconsole --onefile --icon=my_great_icon.ico IconExtractorGUI.py
    

    my_great_icon.ico - שם האייכון - תשנה אותו לשם האייכון שלך.

    IconExtractorGUI.py - שם הסקריפט - תשנה את זה לשם הסקריפט שלך.

    תחכו כמה דקות - ואז בתקייה שבה היה הסקריפט תצוץ תקייה חדשה בשם dist/ ושם יהיה קובץ הexe המעודכן שלכם...

    מדריכים - מחשבים וטכנולוגיה למה באתי

  • מדריך | ראיתם פרויקט מטורף ב-GitHub ורוצים שה-AI יצור לכם גם?
    למה באתיל למה באתי

    צילום מסך 2026-06-29 ב-0.46.52.png

    יוצר פרומפט מפרויקט בגיטהב.

    ראיתי בעבר פרויקט כזה אבל הוא הוציא פרומפט חלש ולא רציני.
    אז יצרתי משהו שמוציא פרומפט מפורט בצורה פסיכית.

    מדריך קצר:

    פירטתי בעיקרון את הכל בקובץ README.md

    ואלו הם עיקרי הדברים:

    מתקינים את התלויות.

    ואז מריצים את זה באופן מקומי על המחשב שלכם.
    דוגמא בספויילר:

    פרומפט של פרויקט מוזיקה גדול בשם meld

    This document serves as a comprehensive "Mega-Prompt" to faithfully recreate the FrancescoGrazioso/Meld project from scratch. It synthesizes all available analysis data into a detailed, actionable specification, intended for skilled developers or AI coding assistants.


    1. Project Overview

    Project Name: FrancescoGrazioso/Meld

    Purpose and Problem Solved:
    Meld is a feature-rich, integrated music application designed to offer a versatile listening experience by consolidating functionalities and content from various sources. It addresses the fragmentation often found in digital music consumption by providing a unified platform for music playback, lyrics display, music recognition, social listening, and advanced audio controls. The project aims to provide a powerful, customizable, and potentially open-source (via FOSS/Izzy flavors) solution for music enthusiasts.

    Target Users and Use Cases:

    • Music Enthusiasts: Users who desire a single application to manage and consume music from multiple services (YouTube Music, Spotify, Qobuz, local files).
    • Power Users: Individuals seeking advanced features such as detailed equalizer controls, in-app music recognition (Shazam-like), Discord Rich Presence integration, and real-time social listening.
    • Open-Source Advocates: Users who prefer or require open-source alternatives, supported by the foss and izzy build flavors.
    • Casual Listeners: Users benefiting from intuitive UI for basic playback, library management, and widget functionality.

    Core Value Proposition:
    Meld's core value proposition lies in its ability to meld together a diverse set of music-related functionalities and external service integrations into a cohesive, user-friendly, and powerful Android application. It offers a "one-stop shop" for music enjoyment, going beyond typical music player capabilities with advanced features and cross-platform content access.

    High-Level Description of How the System Works End-to-End:
    The Meld application operates as a modular monolith on the Android platform, leveraging a layered architecture with MVVM for its UI. User interactions begin in the Presentation Layer (Jetpack Compose UI) and are routed through ViewModel Layer components. These ViewModels orchestrate calls to the Application Logic Layer, which contains core business rules for features like music playback, lyrics fetching, and recognition. The Application Logic Layer, in turn, interacts with the Data Access / External Services Layer to retrieve data from local storage (Room database) or various external APIs (e.g., YouTube Music, Spotify, LRCLIB, Last.fm, DeepL, OpenRouter/Mistral). Data retrieved is transformed into domain models, processed, and then exposed back to the ViewModels as observable streams. The UI observes these streams, rendering updates in real-time. Cross-cutting concerns like dependency injection, error handling, and build configurations are managed by an Infrastructure / Configuration Layer. The application also supports background operations via Android services, widgets, and quick settings tiles.

    2. Technologies & Stack

    Complete List of ALL Languages, Frameworks, Libraries, and Tools:

    • Languages:
      • Kotlin (Primary application logic, UI, and Android components)
      • JavaScript (For specific client-side computations, e.g., YouTube cipher solving in app/src/main/assets/solver)
    • Frameworks & Core Libraries:
      • Android (Platform)
      • Jetpack Compose (Modern Android UI toolkit)
      • Jetpack ViewModel (UI-related state management)
      • Jetpack LiveData / Kotlin Flows (Observable data streams)
      • Room Persistence Library (Local database abstraction)
      • Dagger/Hilt (Dependency Injection – implied by app/src/main/kotlin/com/metrolist/music/di)
      • ExoPlayer (High-performance media playback, implied by music playback features)
    • External API Integration Libraries (Separate Modules):
      • lrclib: LRCLIB lyrics service
      • lastfm: Last.fm scrobbling API
      • betterlyrics: Another lyrics provider (includes TTML parsing)
      • innertube: YouTube Music API
      • spotify: Spotify API
      • kugou: KuGou lyrics API
      • shazamkit: Shazam-like music recognition
      • kizzy: Discord Rich Presence
      • paxsenix: Paxsenix lyrics/music data service
    • Other Libraries/Tools (Inferred):
      • Retrofit / OkHttp (For network communication with various APIs)
      • DeepL (Translation API, via app/src/main/kotlin/com/metrolist/music/api)
      • OpenRouter / Mistral (AI services, via app/src/main/kotlin/com/metrolist/music/api)
      • Gradle (Build system)
      • Renovate (Dependency update automation, via renovate.json)
      • Crowdin (Localization management, via crowdin.yml)
      • Fastlane (App store deployment automation, via fastlane directory)

    Version Requirements:

    • [INSUFFICIENT DATA]: Specific versions for Kotlin, Android SDK, Jetpack Compose, Gradle, and other libraries are not explicitly provided in the analysis. These would typically be defined in build.gradle.kts files and gradle.properties.

    Why Each Technology Was Chosen (Inferred from Usage Patterns):

    • Kotlin: Chosen for modern Android development due to its conciseness, safety features, and excellent interoperability with Java.
    • Jetpack Compose: For building declarative, maintainable, and efficient Android UIs.
    • Room Persistence Library: Provides an abstraction layer over SQLite for robust and easy local data persistence, integrated with Kotlin Flows/LiveData for reactive data.
    • Dagger/Hilt: For managing dependencies, improving testability, and simplifying object graph management across the application.
    • Various API Integration Modules (lrclib, spotify, innertube, etc.): To provide a wide range of content and advanced functionalities by leveraging existing third-party services.
    • Gradle: The standard build automation tool for Android projects, enabling modularity, build flavors, and dependency management.
    • Fastlane, Crowdin, Renovate: Chosen for streamlining developer workflows, automating releases, managing localization, and keeping dependencies up-to-date.

    Development vs. Production Dependencies:

    • [INSUFFICIENT DATA]: The analysis does not explicitly differentiate between development-only and production dependencies. All listed libraries and tools are primarily used in the production application or directly support its build/release process. Testing libraries (e.g., JUnit, Mockito) are implied by the app/src/test directory but not specifically listed.

    3. Architecture & Design Patterns

    Primary Architectural Pattern and Justification:
    The project primarily employs a Modular Monolith / Layered Architecture with an emphasis on MVVM (Model-View-ViewModel) within the UI components.

    • Modular Monolith: The application is structured as a single Android application module (app) that integrates several smaller, self-contained library modules (e.g., lrclib, lastfm, spotify, innertube). This allows for clear separation of concerns for distinct external service integrations, improving maintainability and reusability, while still being deployed as a single application unit.
    • Layered Architecture: The codebase is clearly divided into distinct layers, each with specific responsibilities: Presentation, ViewModel, Application Logic (Domain Services), Data Access / External Services, and Infrastructure. This enforces a clear separation of concerns, enhances testability, and makes the system easier to understand and evolve.
    • MVVM (Model-View-ViewModel): Specifically for the UI, this pattern separates the UI (View, in this case, Jetpack Compose) from its underlying business logic and data (ViewModel and Model). ViewModels expose data streams and handle UI-specific logic, making the UI composables simpler, more testable, and less coupled to data sources.

    All Design Patterns Used Throughout the Codebase:

    • MVVM (Model-View-ViewModel): Explicitly stated for UI, with ViewModels exposing data to Jetpack Compose UI.
    • Repository Pattern (Implied): The presence of db (Room DAOs) and api directories, along with various external service modules, strongly suggests a repository pattern where a unified interface is provided to the domain logic for data access, abstracting away the underlying data source (local database or external API).
    • Dependency Injection: Explicitly used, as evidenced by the app/src/main/kotlin/com/metrolist/music/di directory, likely with Dagger/Hilt, to manage and provide dependencies to various components.
    • Observer Pattern (Implied): Via Kotlin Flows and LiveData used by ViewModels to expose observable data streams to the UI, allowing the UI to react to data changes.
    • Strategy Pattern (Implied): In the lyrics module, the LyricsHelper.kt likely uses different LyricsProvider implementations (from lrclib, kugou, paxsenix, betterlyrics) as strategies to fetch lyrics.
    • Service Pattern: Employed for background operations like music playback (playback/MusicService.kt), music recognition (recognition), and various widgets (widget).

    System Component Diagram (Described Textually):

    +---------------------------+
    |   Presentation Layer      |
    |   (app/src/*/kotlin/ui)   |
    |   - Jetpack Compose UIs   |
    |   - User Interaction      |
    +-------------v-------------+
          Observes / Triggers
    +-------------v-------------+
    |    ViewModel Layer        |
    | (app/src/main/kotlin/viewmodels) |
    |   - UI State Management   |
    |   - UI-specific logic     |
    |   - Orchestrates requests |
    +-------------v-------------+
          Calls / Receives Data
    +-------------v-------------+
    | Application Logic Layer   |
    |   (Domain Services)       |
    | (playback, lyrics, recognition, |
    |  listentogether, eq, models, etc.) |
    |   - Core Business Logic   |
    |   - Data Transformation   |
    |   - Feature Coordination  |
    +-------------v-------------+
          Requests / Persists Data
    +-------------v-------------+
    | Data Access / External Services Layer |
    | (db, api, lrclib, lastfm, innertube, |
    |  spotify, kugou, shazamkit, paxsenix, |
    |  qobuz, app/src/main/assets) |
    |   - Local Database (Room) |
    |   - External API Clients  |
    |   - Data Persistence/Retrieval |
    +---------------------------+
    
    +---------------------------+
    | Infrastructure / Config. Layer |
    | (gradle, build.gradle.kts, |
    |  settings.gradle.kts, AndroidManifest.xml, |
    |  di, docs, fastlane, renovate.json, |
    |  crowdin.yml, proguard-rules.pro) |
    |   - Build System          |
    |   - Dependency Injection  |
    |   - Environment Config    |
    |   - Documentation         |
    |   - CI/CD & Release Tools |
    +---------------------------+
          (Cross-cutting concerns, influences all layers)
    

    How Components Communicate With Each Other:

    • Presentation Layer to ViewModel Layer: UI composables (Presentation) call functions on ViewModels and observe StateFlow, SharedFlow, or LiveData objects exposed by ViewModels to react to state changes.
    • ViewModel Layer to Application Logic Layer: ViewModels inject and call methods on services or use cases provided by the Application Logic Layer (e.g., playback/MusicService.kt, lyrics/LyricsHelper.kt). They receive results, often asynchronously via suspend functions or Flows.
    • Application Logic Layer to Data Access Layer: Domain services (Application Logic) inject and utilize DAOs from db (for local persistence) or client interfaces from api and external service modules (e.g., innertube/YouTube.kt, spotify/Spotify.kt) for data retrieval or submission.
    • Data Access Layer to Application Logic Layer: Data is returned from DAOs or API clients to the Application Logic Layer, often as domain-specific models or raw data, which is then processed.
    • Cross-Layer Communication: Dependency Injection (di) is used to provide instances of components to layers that depend on them. Callbacks, Kotlin Flows, and LiveData facilitate reactive updates. Broadcast Receivers and Services (e.g., MusicService.kt, widgets) enable background tasks and inter-component communication within the Android system.

    Separation of Concerns Strategy:
    Each layer is designed to handle a distinct set of responsibilities:

    • Presentation Layer: Solely concerned with displaying UI and capturing user input.
    • ViewModel Layer: Manages UI state, exposes data streams, and handles UI-specific logic, acting as a bridge between UI and business logic.
    • Application Logic Layer: Encapsulates the core business rules, orchestrates operations across data sources, and defines the application's unique functionalities. It is agnostic to how data is displayed or persisted.
    • Data Access / External Services Layer: Responsible for abstracting data sources (local database, remote APIs) and providing domain-agnostic data. It handles network requests, database transactions, and data parsing.
    • Infrastructure / Configuration Layer: Deals with cross-cutting technical concerns, build processes, environmental configurations, and project metadata, keeping them separate from core application logic.

    4. Folder Structure & File Organization

    The project adheres to a clear, hierarchical folder structure primarily within the app module, with several supporting library modules for external API integrations.

    .
    ├── app/                                        // Main Android application module
    │   ├── build.gradle.kts                        // Module-level Gradle build script
    │   ├── proguard-rules.pro                      // ProGuard/R8 rules for code shrinking and obfuscation
    │   ├── generate_proto.sh                       // Script for generating protocol buffer files (if used)
    │   ├── schemas/                                // Room database schema JSON files for migrations
    │   ├── src/
    │   │   ├── main/                               // Main source set for the application
    │   │   │   ├── AndroidManifest.xml             // Core Android manifest file
    │   │   │   ├── assets/                         // Static assets (e.g., JavaScript solver files)
    │   │   │   │   └── solver/                     // JavaScript files for client-side computations (e.g., YouTube cipher)
    │   │   │   ├── java/                           // [INSUFFICIENT DATA] (might be empty or contain legacy Java)
    │   │   │   ├── kotlin/                         // Primary Kotlin source code
    │   │   │   │   └── com/metrolist/music/
    │   │   │   │       ├── api/                    // Interfaces and implementations for external APIs (e.g., DeepL, OpenRouter/Mistral)
    │   │   │   │       ├── App.kt                  // Application class, often for global initialization (e.g., DI setup)
    │   │   │   │       ├── constants/              // Application-wide constant values
    │   │   │   │       ├── db/                     // Room database definitions, DAOs, and entity models
    │   │   │   │       ├── di/                     // Dependency Injection modules and components (e.g., Dagger/Hilt)
    │   │   │   │       ├── eq/                     // Equalizer service and related audio processing
    │   │   │   │       ├── extensions/             // Kotlin extension functions for common utilities
    │   │   │   │       ├── listentogether/         // Logic for 'listen together' social feature
    │   │   │   │       ├── lyrics/                 // Logic for fetching, parsing, and displaying lyrics
    │   │   │   │       ├── MainActivity.kt         // Main entry point Activity of the application
    │   │   │   │       ├── models/                 // Core domain models and data structures
    │   │   │   │       ├── playback/               // Core music playback service, player management, download, queue
    │   │   │   │       ├── qobuz/                  // Integration specific logic for Qobuz service
    │   │   │   │       ├── quicksettings/          // Code for Android Quick Settings tiles (e.g., Music Recognizer)
    │   │   │   │       ├── recognition/            // Music recognition feature (audio processing, Shazam-like)
    │   │   │   │       ├── ui/                     // User interface code (Jetpack Compose)
    │   │   │   │       │   ├── component/          // Reusable UI components
    │   │   │   │       │   ├── dialog/             // Dialogs
    │   │   │   │       │   ├── menu/               // Menus
    │   │   │   │       │   ├── screens/            // Top-level UI screens (e.g., Home, Library, Settings)
    │   │   │   │       │   ├── theme/              // UI theme definitions
    │   │   │   │       │   └── util/               // UI-specific utilities
    │   │   │   │       ├── utils/                  // General utility functions, crash reporting, data store, synchronization
    │   │   │   │       └── viewmodels/             // ViewModel classes for UI-specific data and logic
    │   │   │   └── res/                            // Android resources (layouts, drawables, strings, etc.)
    │   │   ├── debug/                              // Source set for debug builds
    │   │   ├── gms/                                // Source set for Google Mobile Services (GMS) build flavor
    │   │   │   ├── AndroidManifest.xml             // GMS-specific manifest additions (e.g., Google Cast)
    │   │   │   ├── kotlin/com/metrolist/music/cast/ // GMS-specific Google Cast implementation
    │   │   │   └── kotlin/com/metrolist/music/ui/  // GMS-specific UI components/logic
    │   │   ├── foss/                               // Source set for FOSS (Free and Open Source Software) build flavor
    │   │   │   ├── AndroidManifest.xml             // FOSS-specific manifest additions (e.g., open-source cast alternatives)
    │   │   │   ├── kotlin/com/metrolist/music/cast/ // FOSS-specific cast implementation
    │   │   │   └── kotlin/com/metrolist/music/ui/  // FOSS-specific UI components/logic
    │   │   ├── izzy/                               // Source set for IzzyOnDroid (F-Droid variant) build flavor
    │   │   │   ├── AndroidManifest.xml             // Izzy-specific manifest additions
    │   │   │   ├── kotlin/com/metrolist/music/cast/ // Izzy-specific cast implementation
    │   │   │   └── kotlin/com/metrolist/music/ui/  // Izzy-specific UI components/logic
    │   │   └── test/                               // Unit tests
    ├── betterlyrics/                               // Android library module for BetterLyrics provider
    ├── docs/                                       // Project documentation (e.g., Spotify GQL hashes)
    ├── fastlane/                                   // Fastlane configurations for app store deployment, metadata, and localization
    ├── gradle/                                     // Gradle wrapper files and project-level configuration
    ├── innertube/                                  // Android library module for YouTube Music API integration
    ├── kizzy/                                      // Android library module for Discord Rich Presence integration
    ├── kugou/                                      // Android library module for KuGou lyrics API integration
    ├── lastfm/                                     // Android library module for Last.fm scrobbling API integration
    ├── lint.xml                                    // Android Lint configuration file
    ├── lrclib/                                     // Android library module for LRCLIB lyrics service integration
    ├── paxsenix/                                   // Android library module for Paxsenix lyrics/music data service integration
    ├── shazamkit/                                  // Android library module for Shazam-like music recognition integration
    ├── spotify/                                    // Android library module for Spotify API integration
    ├── build.gradle.kts                            // Root-level Gradle build script
    ├── changelog.md                                // Project changelog
    ├── crowdin.yml                                 // Crowdin configuration for localization
    ├── development_guide.md                        // Development guide documentation
    ├── AGENTS.md                                   // Documentation on agents/tools used
    ├── gradle.properties                           // Global Gradle properties
    ├── gradlew                                     // Gradle wrapper script (Linux/macOS)
    ├── gradlew.bat                                 // Gradle wrapper script (Windows)
    ├── LICENSE                                     // Project license file
    ├── README.md                                   // Project README
    ├── renovate.json                               // Renovate configuration for dependency updates
    └── settings.gradle.kts                         // Gradle settings file, defines project modules
    

    Naming Conventions Used:

    • Kotlin Files: PascalCase for classes/objects (e.g., MainActivity.kt, MusicService.kt), camelCase for functions and variables.
    • Directories: lowercase for modules (e.g., app, lrclib), camelCase or lowercase for subdirectories (e.g., viewmodels, playback, ui/component).
    • UI Components: Likely PascalCase for composable functions (e.g., HomeScreen, MusicPlayerControls).
    • ViewModels: Classes ending with ViewModel suffix (e.g., MainViewModel).
    • DAOs: Interfaces ending with Dao suffix.
    • Services: Classes ending with Service suffix (e.g., MusicService.kt).
    • Receivers: Classes ending with Receiver suffix (e.g., MusicWidgetReceiver.kt).
    • Tiles: Classes ending with TileService suffix (e.g., MusicRecognizerTileService.kt).

    Where to Find Specific Types of Code:

    • UI Screens & Components: app/src/main/kotlin/com/metrolist/music/ui/screens and app/src/main/kotlin/com/metrolist/music/ui/component.
    • UI Logic & State Management: app/src/main/kotlin/com/metrolist/music/viewmodels.
    • Core Music Playback: app/src/main/kotlin/com/metrolist/music/playback.
    • Database Interactions: app/src/main/kotlin/com/metrolist/music/db.
    • External API Clients: app/src/main/kotlin/com/metrolist/music/api for general APIs, and dedicated modules like innertube, spotify, lrclib, lastfm, kugou, paxsenix, shazamkit for specific integrations.
    • Lyrics Handling: app/src/main/kotlin/com/metrolist/music/lyrics.
    • Music Recognition: app/src/main/kotlin/com/metrolist/music/recognition.
    • Build Configuration: build.gradle.kts, settings.gradle.kts, gradle.properties, gradle directory.
    • Build Flavor Specific Code: app/src/gms, app/src/foss, app/src/izzy.
    • Dependencies: build.gradle.kts files (root and app module).
    • Resources (Strings, Drawables): app/src/main/res.
    • Application-wide Constants: app/src/main/kotlin/com/metrolist/music/constants.
    • General Utilities: app/src/main/kotlin/com/metrolist/music/utils.

    Configuration File Locations and Purposes:

    • build.gradle.kts (root and module-level): Defines dependencies, build types, product flavors, and other Gradle build configurations.
    • settings.gradle.kts: Declares all modules included in the project.
    • gradle.properties: Stores global Gradle properties, including versions and configuration flags.
    • AndroidManifest.xml (app/src/main and flavor-specific app/src/{flavor}😞 Declares application components (activities, services, receivers, permissions), and build-flavor specific customizations.
    • proguard-rules.pro: Specifies rules for R8/ProGuard to optimize, shrink, and obfuscate code during release builds.
    • lint.xml: Configures Android Lint checks for code quality and potential issues.
    • renovate.json: Configuration for Renovate bot to automate dependency updates.
    • crowdin.yml: Configuration for Crowdin platform to manage and automate localization efforts.
    • fastlane/: Contains Fastfile, Appfile, metadata, and other files for automating app deployment to app stores (Google Play, F-Droid).

    5. Features & Functionality

    The Meld application offers a wide range of features, organized by their core functionality and the modules that implement them.

    1. Core Music Playback & Management

    • What it does: Provides background music playback, queue management, player controls, download management, and media session integration.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/playback/MusicService.kt: The main background service managing media playback.
      • app/src/main/kotlin/com/metrolist/music/playback/: Contains related classes for player connection, queue, and download.
      • app/src/main/kotlin/com/metrolist/music/ui/screens/player/: UI for the media player.
      • app/src/main/kotlin/com/metrolist/music/widget/: Widgets for quick control.
    • How it works: MusicService.kt orchestrates playback, likely using ExoPlayer. It manages the current queue, handles media controls (play/pause, skip), and integrates with Android's MediaSession API for notifications and external controls. Songs are retrieved from the local database (db) or external streaming services (innertube, spotify, qobuz) and played.

    2. Local Data Persistence

    • What it does: Stores application data locally, including song metadata, playlists, user settings, and cached content.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/db/: Room database setup, entity definitions, and Data Access Objects (DAOs).
      • app/schemas/: Database schema version history for migrations.
    • How it works: Uses Room persistence library to store structured data. DAOs provide interfaces for CRUD operations on various data entities.

    3. Lyrics Display & Management

    • What it does: Fetches, parses, and displays synchronized or unsynchronized lyrics for playing songs from multiple providers.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/lyrics/LyricsHelper.kt: Orchestrates lyric fetching.
      • app/src/main/kotlin/com/metrolist/music/lyrics/LyricsProvider.kt: Interface for different lyric providers.
      • lrclib/: Integration with LRCLIB.
      • betterlyrics/: Integration with BetterLyrics, includes TTML parsing.
      • kugou/: Integration with KuGou lyrics.
      • paxsenix/: Integration with Paxsenix service.
    • How it works: LyricsHelper.kt attempts to fetch lyrics from various configured LyricsProvider implementations based on the current song. It handles parsing of different lyric formats (e.g., LRC, TTML) and provides the lyrics to the UI, potentially with synchronization timestamps.

    4. Music Recognition (Shazam-like)

    • What it does: Identifies music playing around the user, similar to Shazam.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/recognition/: Core logic for audio processing, signature generation, and recognition service.
      • shazamkit/: Integration with Shazam-like recognition technology.
      • app/src/main/kotlin/com/metrolist/music/recognition/RecognitionLaunchActivity.kt: Entry point for recognition.
      • app/src/main/kotlin/com/metrolist/music/quicksettings/MusicRecognizerTileService.kt: Quick Settings tile for recognition.
      • app/src/main/kotlin/com/metrolist/music/widget/MusicRecognizerWidgetReceiver.kt: Widget for recognition.
    • How it works: The recognition module captures audio, generates an acoustic fingerprint, and sends it to a recognition service (likely shazamkit or a custom implementation) to identify the song. Results are then displayed to the user.

    5. Social Features: Listen Together

    • What it does: Enables users to listen to music together in real-time.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/listentogether/: Contains client-server communication logic and UI integration.
    • How it works: Manages real-time synchronization of playback state between multiple users, likely through a custom server backend (details not provided, "[INSUFFICIENT DATA]" on server-side).

    6. Audio Equalizer (EQ)

    • What it does: Provides advanced audio equalization controls for playback.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/eq/: Equalizer service and related audio processing components.
    • How it works: Integrates with Android's audio effects framework or a custom audio processing library to apply equalization settings to the audio output during playback.

    7. Third-Party Music & API Integrations

    • What it does: Provides access to content and features from popular music services and APIs.
    • Files Implementing It:
      • innertube/: YouTube Music API integration (potentially includes client-side cipher solving in app/src/main/assets/solver).
      • spotify/: Spotify API integration for streaming, library access.
      • qobuz/: Qobuz integration (logic in app/src/main/kotlin/com/metrolist/music/qobuz).
      • lastfm/: Last.fm scrobbling to track listening history.
      • kizzy/: Discord Rich Presence integration for displaying current song on Discord.
    • How it works: Each module (innertube, spotify, etc.) acts as a client for its respective API, handling authentication, request/response parsing, and data mapping to Meld's internal models. For YouTube, app/src/main/assets/solver might contain JavaScript logic executed in a WebView for bypassing certain content protection mechanisms or retrieving stream URLs.

    8. Android Widgets & Quick Settings Tiles

    • What it does: Offers quick access to app functionalities from the home screen and notification shade.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/widget/MusicWidgetReceiver.kt: Standard music control widget.
      • app/src/main/kotlin/com/metrolist/music/widget/TurntableWidgetReceiver.kt: Specialized "turntable" themed widget.
      • app/src/main/kotlin/com/metrolist/music/widget/MusicRecognizerWidgetReceiver.kt: Widget to trigger music recognition.
      • app/src/main/kotlin/com/metrolist/music/quicksettings/MusicRecognizerTileService.kt: Quick Settings tile for music recognition.
    • How it works: These components extend Android's AppWidgetProvider or TileService to receive broadcasts or user interactions and trigger corresponding actions within the MusicService or Recognition module.

    9. AI and Translation Services

    • What it does: Integrates with AI services for potential advanced features (e.g., content recommendations, smart search) and translation services.
    • Files Implementing It:
      • app/src/main/kotlin/com/metrolist/music/api/DeepL.kt: DeepL API client for translation.
      • app/src/main/kotlin/com/metrolist/music/api/OpenRouter.kt: OpenRouter API client.
      • app/src/main/kotlin/com/metrolist/music/api/Mistral.kt: Mistral AI API client.
    • How it works: Provides an abstraction layer to interact with these external AI and translation APIs, likely for tasks such as translating lyrics, generating summaries, or enhancing search queries.

    10. Build Flavors & Environment Specifics

    • What it does: Provides alternative implementations or configurations for different build targets (e.g., Google Mobile Services, FOSS, IzzyOnDroid).
    • Files Implementing It:
      • app/src/gms/, app/src/foss/, app/src/izzy/: Contain flavor-specific AndroidManifest.xml files and Kotlin code (e.g., for Google Cast integration or open-source alternatives).
    • How it works: Gradle's product flavors feature allows compilation of different source sets based on the chosen build flavor, enabling conditional inclusion of proprietary libraries (like Google Cast in GMS) or open-source alternatives.

    User-Facing vs. System-Level Features:

    • User-Facing: Core Music Playback & Management (UI controls, queue), Lyrics Display, Music Recognition (UI, widgets, tile), Social Features, Audio Equalizer, Third-Party Music Integrations (browsing, streaming), AI/Translation (if integrated into UI features).
    • System-Level: Local Data Persistence (internal), Android Widgets & Quick Settings Tiles (partially user-facing, but core implementation is system-level), Build Flavors (configuration), Dependency Injection (infrastructure), Crash Reporting (utils/CrashHandler.kt).

    Feature Dependencies and Relationships:

    • Music Playback depends on Local Data Persistence (for library) and Third-Party Music Integrations (for streaming).
    • Lyrics Display depends on Music Playback (for current song context) and multiple Lyrics Providers modules.
    • Music Recognition depends on shazamkit and system audio input.
    • Social Features (Listen Together) depends on Music Playback.
    • Widgets and Quick Settings Tiles depend on Core Music Playback and Music Recognition for functionality.
    • AI/Translation services might be integrated into Lyrics (for translation) or Search functionality.

    6. Database Design & Data Models

    Database System:
    The project uses the Room Persistence Library, which is an SQLite object mapping library for Android.

    All Data Models/Schemas with Field Definitions:
    The app/src/main/kotlin/com/metrolist/music/db/ directory is where Room database entities, Data Access Objects (DAOs), and the main AppDatabase class are defined. The app/schemas/ directory stores JSON files representing the database schema at different versions, crucial for managing migrations.

    • Database Class: AppDatabase.kt (or similar name within app/src/main/kotlin/com/metrolist/music/db/) defines the database configuration, lists all entities, and specifies the version.
    • Entities: No specific entity names or field definitions are provided in the analysis data. However, typical entities for a music player application would include:
      • Song: id (Primary Key), title, artist, album, albumArtUri, duration, source (e.g., YouTube, Spotify, Local), filePath (for local files), lastPlayed, playCount, isDownloaded.
      • Artist: id, name, artworkUri.
      • Album: id, name, artistId (Foreign Key), releaseYear, artworkUri.
      • Playlist: id, name, creationDate, lastModified.
      • PlaylistSongCrossRef: Junction table for many-to-many relationship between Playlist and Song.
      • QueueItem: songId, orderInQueue, playbackPosition.
      • Lyrics: songId (Foreign Key), text, source, syncTimestamps.
      • Settings: key (Primary Key), value (for application settings).
    • Data Access Objects (DAOs): Corresponding DAOs would be defined for each entity (e.g., SongDao.kt, PlaylistDao.kt), containing methods for inserting, updating, deleting, and querying entities. These methods often return Flow or LiveData for reactive UI updates.

    Relationships Between Models (one-to-many, many-to-many, etc.):

    • [INSUFFICIENT DATA]: Specific relationships (e.g., Song to Artist is many-to-one, Playlist to Song is many-to-many via a cross-reference table) are not detailed in the analysis. These would be defined using Room annotations (@ForeignKey, @Relation, @JunctionTable).

    Indexes and Constraints:

    • [INSUFFICIENT DATA]: Specific indexes (e.g., on songId for faster lookup, artistName for sorting) and unique constraints (e.g., songTitle + artistName unique) are not detailed. These would be defined within @Entity annotations.

    Migration Strategy:

    • The presence of the app/schemas directory indicates that Room's automatic schema migration or manual migration strategy is employed. When the database schema changes, a new schema JSON file is generated, and a migration path is defined to handle existing user data without loss.

    State Management Approach (If no database): Not applicable, as Room database is explicitly used.

    7. API Documentation & Endpoints

    The project primarily integrates with numerous external APIs, serving as a client for these services. There is no indication of a custom backend API exposed by Meld itself.

    External APIs Integrated:

    1. YouTube Music (Innertube)

      • Module: innertube
      • Purpose: Accessing YouTube Music content, streaming URLs, and metadata.
      • Interaction: Likely involves making HTTP requests to YouTube's internal API endpoints. May involve client-side JavaScript execution (app/src/main/assets/solver) for cipher solving to retrieve stream URLs or bypass restrictions.
      • Authentication: Likely token-based, possibly requiring user login via Google accounts for personalized content.
      • Endpoints: [INSUFFICIENT DATA] on specific endpoint paths/methods.
      • Request/Response Formats: [INSUFFICIENT DATA] but commonly JSON.
    2. Spotify

      • Module: spotify
      • Purpose: Interacting with the Spotify Web API for music streaming, library management, playlist creation, search, etc.
      • Authentication: OAuth 2.0 (Authorization Code Flow) is standard for Spotify API.
      • Endpoints: [INSUFFICIENT DATA] on specific endpoint paths/methods.
      • Request/Response Formats: [INSUFFICIENT DATA] but commonly JSON. Documentation (docs) mentions Spotify GQL hashes, suggesting GraphQL might also be used.
    3. Qobuz

      • Module/Logic: app/src/main/kotlin/com/metrolist/music/qobuz
      • Purpose: Integration with the Qobuz high-resolution music service.
      • Authentication: [INSUFFICIENT DATA] (likely API keys or OAuth).
      • Endpoints: [INSUFFICIENT DATA].
      • Request/Response Formats: [INSUFFICIENT DATA].
    4. Last.fm

      • Module: lastfm
      • Purpose: Scrobbling listened tracks to a user's Last.fm profile.
      • Authentication: API Key and user session authentication (e.g., via auth.getToken, auth.getSession).
      • Endpoints: [INSUFFICIENT DATA] but typically uses a single API endpoint with method parameters for different actions (e.g., track.scrobble, track.updateNowPlaying).
      • Request/Response Formats: [INSUFFICIENT DATA] but commonly XML/JSON.
    5. LRCLIB

      • Module: lrclib
      • Purpose: Fetching synchronized (LRC) lyrics.
      • Authentication: [INSUFFICIENT DATA] (possibly public API, or API key).
      • Endpoints: [INSUFFICIENT DATA] (likely a search endpoint based on song/artist).
      • Request/Response Formats: [INSUFFICIENT DATA] but expected to return LRC formatted text.
    6. KuGou Lyrics

      • Module: kugou
      • Purpose: Alternative source for lyrics.
      • Authentication: [INSUFFICIENT DATA] (often requires specific headers or parameters based on service reverse-engineering).
      • Endpoints: [INSUFFICIENT DATA].
      • Request/Response Formats: [INSUFFICIENT DATA].
    7. Paxsenix

      • Module: paxsenix
      • Purpose: Another lyrics/music data service.
      • Authentication: [INSUFFICIENT DATA].
      • Endpoints: [INSUFFICIENT DATA].
      • Request/Response Formats: [INSUFFICIENT DATA].
    8. BetterLyrics

      • Module: betterlyrics
      • Purpose: Another lyrics provider, specifically includes TTML parsing logic.
      • Authentication: [INSUFFICIENT DATA].
      • Endpoints: [INSUFFICIENT DATA].
      • Request/Response Formats: [INSUFFICIENT DATA] (likely handles TTML).
    9. ShazamKit-like Recognition

      • Module: shazamkit
      • Purpose: Sending audio fingerprints for music identification.
      • Authentication: [INSUFFICIENT DATA] (could be SDK-based or API key).
      • Endpoints: [INSUFFICIENT DATA].
      • Request/Response Formats: [INSUFFICIENT DATA] (likely proprietary audio fingerprint and metadata response).
    10. Discord Rich Presence (Kizzy)

      • Module: kizzy
      • Purpose: Updating Discord status with current song information.
      • Authentication: OAuth 2.0 for user authorization.
      • Endpoints: Interacts with Discord API for user status updates.
      • Request/Response Formats: [INSUFFICIENT DATA] but JSON.
    11. DeepL, OpenRouter, Mistral (AI/Translation)

      • Module/Logic: app/src/main/kotlin/com/metrolist/music/api/
      • Purpose: Provides translation (DeepL) and general AI capabilities (OpenRouter, Mistral).
      • Authentication: Likely API keys or bearer tokens.
      • Endpoints: [INSUFFICIENT DATA] on specific endpoint paths/methods for each service.
      • Request/Response Formats: [INSUFFICIENT DATA] but commonly JSON.

    Error Handling Patterns:

    • For external API calls, error handling is typically implemented at the Data Access Layer within each API client. This involves handling network errors (e.g., IOException), HTTP error codes (4xx, 5xx), and parsing API-specific error responses.
    • Application-wide crash reporting is managed by app/src/main/kotlin/com/metrolist/music/utils/CrashHandler.kt. This utility likely catches unhandled exceptions and logs them for debugging or reporting.
    • Errors are propagated up the call stack (e.g., via Result wrapper classes, exceptions, or Flow error handling) to the ViewModel Layer and ultimately the Presentation Layer for display to the user.

    Inter-component Communication Patterns (No Internal API):
    Within the application, components communicate through:

    • Direct function calls: From ViewModels to Application Logic services, and from services to Data Access components.
    • Dependency Injection: Components receive their dependencies through constructor injection or field injection, configured in app/src/main/kotlin/com/metrolist/music/di.
    • Observable Data Streams: Kotlin Flow and LiveData are extensively used for reactive communication, especially from ViewModels to UI, and from Data Access to Application Logic.
    • Android System Components: BroadcastReceiver (for widgets), Service (for background playback), and ContentProvider (if exposing data) are used for system-level communication.

    8. Authentication & Authorization

    Authentication Strategy:
    The application itself does not appear to have a direct user authentication system (e.g., local username/password). Authentication is primarily delegated to the integrated third-party services.

    • OAuth 2.0: Likely used for services like Spotify and Discord Rich Presence (Kizzy), where users grant the application permission to access their data on these platforms via a secure delegated authorization flow.
    • API Keys: Potentially used for services like DeepL, OpenRouter, Mistral, LRCLIB, and others where a simple key provides access to the service. These keys would likely be stored securely and provided at build time or runtime.
    • User Session-based Authentication: For services like Last.fm and potentially YouTube Music (Innertube), users might authenticate directly with the service, and the application manages a user session token or cookie.
    • [INSUFFICIENT DATA]: Specific implementation details (e.g., how tokens are securely stored, refresh mechanisms) are not available in the analysis.

    Authorization Model:

    • External Service-driven: Authorization is primarily handled by the external APIs themselves. When a user authenticates with Spotify via OAuth, the access token obtained dictates what actions the Meld application is authorized to perform (e.g., read user library, control playback). The application enforces these permissions based on the scope granted by the user.
    • No Internal RBAC/ABAC: There is no indication of a role-based (RBAC) or attribute-based (ABAC) access control system within the Meld application itself, as it is a client-side application primarily interacting with personal user data and public APIs.
    • [INSUFFICIENT DATA]: No specific authorization logic is described beyond relying on the external service's mechanisms.

    Security Measures Implemented:

    • Code Obfuscation & Shrinking: app/proguard-rules.pro indicates the use of R8/ProGuard to obfuscate and shrink the application code, making reverse engineering more difficult and reducing the app size.
    • Android Permissions: Defined in AndroidManifest.xml (main and flavor-specific), ensuring the app requests only necessary permissions (e.g., INTERNET for network access, RECORD_AUDIO for music recognition, READ_EXTERNAL_STORAGE for local files).
    • Build Flavors for Sensitive Integrations: gms, foss, izzy flavors allow for conditional compilation, potentially preventing sensitive proprietary integrations (like Google Cast) from being included in open-source builds, thus enhancing transparency and potentially security for FOSS users.
    • API Key Management: While not detailed, best practices would involve storing API keys securely (e.g., in local.properties ignored by version control, or encrypted at rest) and not hardcoding them in publicly accessible code.
    • HTTPS/TLS: Implied for all external API communications to ensure data in transit is encrypted.
    • [INSUFFICIENT DATA]: Specific security audits, vulnerability scanning, secure storage for sensitive data (e.g., OAuth tokens), or detailed data encryption strategies are not described.

    9. UI/UX Description & Component Hierarchy

    UI Framework:
    The application uses Jetpack Compose for building its user interface, as indicated by the "Presentation Layer" description.

    Page/Screen Descriptions:
    The app/src/main/kotlin/com/metrolist/music/ui/screens directory suggests a modular approach to defining top-level screens. Common screens implied by the features include:

    • Home Screen: Likely a dashboard showing recently played, recommendations, or quick access to major features.
    • Library Screen: For managing local and potentially integrated online music (artists, albums, songs, playlists).
    • Player Screen: Dedicated full-screen UI for music playback, showing album art, controls, lyrics, and possibly EQ settings.
    • Search Screen: To find music, artists, albums, or lyrics across all integrated sources.
    • Settings Screen: For configuring application preferences, API keys, theme, audio settings, etc.
    • Lyrics Screen/View: Integrated into the player or as a dedicated view for displaying synchronized lyrics.
    • Music Recognition Screen: Displays results of music recognition.
    • "Listen Together" Screen: UI for creating or joining listening sessions.

    Component Hierarchy and Relationships:
    The app/src/main/kotlin/com/metrolist/music/ui/component directory houses generic and reusable UI components.

    • Root Composable: The MainActivity.kt acts as the entry point, hosting the main NavHost (or similar navigation component) that switches between top-level screens.
    • Screen Composables: Each screen (e.g., HomeScreen.kt, PlayerScreen.kt) is a large composable function, often taking a ViewModel instance as a parameter or observing ViewModel state.
    • Reusable Components: Screens are built from smaller, reusable UI components defined in ui/component, such as:
      • PlayerControls (play/pause, skip buttons, progress bar)
      • AlbumArtDisplay
      • SongListItem
      • SearchBar
      • NavigationRail/BottomNavigationBar (for switching between major screens)
      • Dialogs, Menus (ui/dialog, ui/menu)
      • Custom buttons, sliders, text fields, etc.
    • Component Relationships: Screens compose multiple smaller components to build their layouts. Components communicate with their parent composables via callbacks or by modifying shared MutableState objects (within the ViewModel's scope).

    Styling Approach and Design System:

    • Jetpack Compose Theming: The app/src/main/kotlin/com/metrolist/music/ui/theme directory indicates a structured approach to theming using Compose's Material Design theming system. This would include:
      • Theme.kt: Defines MaterialTheme with custom colors, typography, and shapes.
      • Color.kt: Defines custom color palettes.
      • Type.kt: Defines typography (font families, sizes, weights).
      • Shape.kt: Defines custom shapes.
    • Consistency: The use of a central theme package ensures consistent styling across the entire application.

    Responsive Design Strategy:

    • Compose Built-in Responsiveness: Jetpack Compose inherently supports responsive design by allowing composables to adapt to different screen sizes and orientations. This is typically achieved using:
      • Modifier.fillMaxWidth(), Modifier.weight(), Row, Column, Box layouts.
      • WindowSizeClass or custom BoxWithConstraints to conditionally render different layouts based on available space (e.g., a compact player UI on small screens vs. expanded on tablets).
    • [INSUFFICIENT DATA]: No explicit strategy beyond Compose's capabilities is described.

    If no UI: Not applicable, as it is a mobile application with a robust UI.

    10. Development Setup Instructions

    Prerequisites and System Requirements:

    1. Operating System: macOS, Linux, or Windows (Windows Subsystem for Linux recommended for certain scripts).
    2. Java Development Kit (JDK): Version 11 or higher (as typically required by modern Android Studio and Gradle).
    3. Android Studio: Latest stable version, including the Android SDK and build tools.
    4. Git: Version control system.
    5. Internet Connection: Required for downloading dependencies during Gradle sync.

    Step-by-Step Setup Instructions:

    1. Clone the Repository:
      git clone https://github.com/FrancescoGrazioso/Meld.git
      cd Meld
      
    2. Open in Android Studio:
      • Launch Android Studio.
      • Select "Open an existing Android Studio project" or "File > Open".
      • Navigate to the cloned Meld directory and select it.
    3. Gradle Sync:
      • Android Studio will automatically attempt to perform a Gradle sync. If prompted, allow it to download necessary dependencies and configure the project.
      • Ensure a stable internet connection.
    4. Configure local.properties (if needed for API keys):
      • [INSUFFICIENT DATA]: The analysis does not specify required environment variables or API keys. However, for external API integrations (Spotify, DeepL, etc.), it is highly probable that API keys or secrets are required.
      • If the project uses a local.properties file (which is typically git-ignored) for sensitive keys, create or edit local.properties in the project root:
        # Example (replace with actual keys/variables if identified)
        # spotify_client_id="YOUR_SPOTIFY_CLIENT_ID"
        # spotify_client_secret="YOUR_SPOTIFY_CLIENT_SECRET"
        # deepl_api_key="YOUR_DEEPL_API_KEY"
        # ... and so on for other services like Last.fm, OpenRouter, Mistral, Qobuz
        
      • Refer to development_guide.md or any internal documentation for specific key requirements.
    5. Generate Protocol Buffer Files (if applicable):
      • If app/generate_proto.sh is used and protobufs are critical, execute it:
        ./app/generate_proto.sh
        
      • [INSUFFICIENT DATA]: No details on protobuf usage are given. This step may not be required if protobufs are not used or are pre-generated.
    6. Select Build Variant:
      • In Android Studio, open the "Build Variants" tool window (View > Tool Windows > Build Variants).
      • Choose a build variant (e.g., debug, release) and a product flavor (e.g., gms, foss, izzy) based on your development needs. For initial development, gmsDebug or fossDebug is usually appropriate.

    Environment Variables Needed (with descriptions, not values):

    • SPOTIFY_CLIENT_ID: Client ID for Spotify API authentication.
    • SPOTIFY_CLIENT_SECRET: Client Secret for Spotify API authentication.
    • LASTFM_API_KEY: API Key for Last.fm service.
    • LASTFM_SHARED_SECRET: Shared secret for Last.fm authentication.
    • DEEPL_API_KEY: API Key for DeepL translation service.
    • OPENROUTER_API_KEY: API Key for OpenRouter AI service.
    • MISTRAL_API_KEY: API Key for Mistral AI service.
    • QOBUZ_APP_ID: Application ID for Qobuz integration.
    • QOBUZ_SECRET_KEY: Secret Key for Qobuz integration.
    • Other API keys/secrets: For lrclib, kugou, paxsenix, shazamkit if they are not public APIs.
    • These are typically defined in local.properties or passed as Gradle properties.

    How to Run the Development Server:
    Meld is an Android application; there is no "development server" in the traditional web sense.

    1. Connect a Device or Start an Emulator:
      • Ensure you have an Android emulator configured in Android Studio or an Android device connected via USB with Developer Options and USB debugging enabled.
    2. Select Target Device:
      • In Android Studio, select your desired emulator or physical device from the target device dropdown menu.
    3. Run the Application:
      • Click the "Run 'app'" button (green play icon) in the Android Studio toolbar.
      • Android Studio will build the selected debug variant and install it on your chosen device/emulator.

    How to Run Tests:

    1. Open Project View: In Android Studio, ensure the Project window is open and set to "Project" view.
    2. Navigate to Test Source Set: Locate the app/src/test directory.
    3. Run All Tests (from directory):
      • Right-click on the test directory.
      • Select "Run 'Tests in app.test'".
    4. Run Specific Test File/Class/Method:
      • Navigate to a specific test file (e.g., ExampleUnitTest.kt if it exists).
      • Right-click on the file, a class within the file, or a specific test method.
      • Select "Run 'TestName'".
    5. Gradle Command Line:
      • Open a terminal in the project root.
      • To run all unit tests:
        ./gradlew testDebugUnitTest
        
      • To run tests for a specific module:
        ./gradlew :app:testDebugUnitTest
        
      • [INSUFFICIENT DATA]: No specific Instrumented Tests (app/src/androidTest) are explicitly mentioned in the analysis, but if present, they would run via ./gradlew connectedDebugAndroidTest.

    11. Final Build & Deployment Instructions

    Build Process and Commands:

    1. Clean Project:
      ./gradlew clean
      
      This removes all build artifacts.
    2. Build Release APK/App Bundle:
      The project uses build flavors (gms, foss, izzy). You need to specify the desired flavor along with the release build type.
      • For Google Mobile Services (GMS) Release:
        ./gradlew :app:assembleGmsRelease
        # Or to build an Android App Bundle (recommended for Play Store):
        ./gradlew :app:bundleGmsRelease
        
      • For FOSS Release:
        ./gradlew :app:assembleFossRelease
        # Or to build an Android App Bundle:
        ./gradlew :app:bundleFossRelease
        
      • For IzzyOnDroid Release:
        ./gradlew :app:assembleIzzyRelease
        # Or to build an Android App Bundle:
        ./gradlew :app:bundleIzzyRelease
        
      • These commands will generate the signed APK or AAB files in app/build/outputs/apk/{flavor}/release/ or app/build/outputs/bundle/{flavor}/release/ respectively. Ensure signing configurations are correctly set up in build.gradle.kts (usually signingConfigs block pointing to keystore.properties).
    3. ProGuard/R8 Obfuscation: The proguard-rules.pro file will be applied automatically during release builds to shrink, optimize, and obfuscate the code.

    Deployment Target and Strategy:

    • Google Play Store: The primary deployment target for the gmsRelease build variant.
    • F-Droid / IzzyOnDroid: Deployment targets for the fossRelease and izzyRelease build variants, adhering to open-source distribution platforms.
    • Fastlane Automation: The fastlane directory suggests that deployment is automated using Fastlane tools (e.g., fastlane supply for Play Store, fastlane deploy_fdroid for F-Droid).

    Environment Configuration for Production:
    Production environments are managed through:

    • Build Flavors: gms, foss, izzy source sets provide specific AndroidManifest.xml files and Kotlin code to include/exclude dependencies or features relevant to each distribution channel (e.g., Google Cast for GMS, open-source alternatives for FOSS/Izzy).
    • proguard-rules.pro: Configured for release builds to optimize and secure the application.
    • Signing Configuration: Defined in build.gradle.kts (or referenced from gradle.properties for security) to sign release builds with a production keystore.
    • API Keys/Secrets: Production API keys should be securely managed and injected during the build process, typically via Gradle properties or environment variables, not hardcoded.

    CI/CD Pipeline Description (if present):
    The presence of fastlane/, crowdin.yml, and renovate.json strongly indicates an established CI/CD pipeline:

    • Dependency Updates: renovate.json manages automated dependency updates via pull requests, contributing to maintainability and security.
    • Localization: crowdin.yml integrates with Crowdin for automated localization string management, pulling translations into the project.
    • Release Automation: fastlane automates various aspects of the release process, including:
      • Taking screenshots and generating metadata (fastlane supply init, fastlane deliver).
      • Building and signing the application (fastlane build_android).
      • Uploading APKs/AABs to Google Play Console, F-Droid repositories.
      • Potentially automating changelog generation (changelog.md) and version bumping.
    • [INSUFFICIENT DATA]: No explicit CI provider (e.g., GitHub Actions, GitLab CI, Jenkins) is specified, but the tools suggest such a pipeline exists.

    Post-Deployment Verification Steps:

    • [INSUFFICIENT DATA]: Specific post-deployment verification steps are not detailed in the analysis. However, standard practices would include:
      • Downloading and installing the deployed app on a test device.
      • Verifying core functionalities (playback, lyrics, recognition) work correctly.
      • Checking integration with external services (Spotify, YouTube, Last.fm).
      • Monitoring crash reports and performance metrics in the respective app store consoles.
      • Ensuring build flavor-specific features and restrictions are correctly applied

    .

    לפרטים והורדה:
    https://github.com/israelfarkash/Repo2Prompt

    אשמח אם תעשו לי כוכב.

    מדריכים - מחשבים וטכנולוגיה למה באתי

  • בקשת מידע | טלפון חדש של ישיבת חברון
    למה באתיל למה באתי

    מישהו מכיר?
    יש תמונה? IMG_20251016_033307_445.jpg

    מדריכים - אנדרואיד
  • התחברות

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

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