ל-Google Messages יש RCS API נסתר עבור אפליקציות צד שלישי

לאפליקציית Google Messages יש API מוסתר של Android Messages שיכול לאפשר ליישומי הודעות של צד שלישי לשלוח הודעות RCS.

עדכון 2 (07/09/2021 @ 16:49 ET): למדנו כי RCS API זה אינו מיועד כעת לשימוש על ידי אפליקציות צד שלישי. לחץ כאן למידע נוסף.

עדכונים קודמים

עדכון 1 (07/09/2021 @ 02:53 PM ET): עדכנו את המאמר עם מידע על כך שניתן למצוא את ה-API רק בגרסה הבלעדית של סמסונג של אפליקציית Google Messages. לחץ כאן למידע נוסף.

קרא עוד

RCS, ראשי תיבות של Rich Communication Services, נתפס בדרך כלל כיורשת ה-SMS. הוא תומך בתכונות כמו ניהול צ'אט קבוצתי, שיתוף קבצים באיכות גבוהה יותר, אישורי קריאה, מחווני הקלדה והצפנה מקצה לקצה. על מנת להשתמש בפרוטוקול RCS לצ'אטים, עליו להיות נתמך על ידי הרשת, מערכת ההפעלה של הטלפון ואפליקציית ההודעות של הטלפון באמצעות API. ספקים אמריקאים גררו את רגליהם יותר מדי זמן באימוץ RCS, כך שגוגל עקפה אותם לחלוטין והוסיפה RCS backend משלהם לאפליקציית Google Messages. עם זאת, באנדרואיד, רק אפליקציית Google Messages יכולה לגשת ל-RCS API של אנדרואיד. זה עשוי להשתנות אם גוגל תפתח את "Android Messages API" שלה.

עוד בשנת 2019, למדנו שגוגל עבדה על הוספת RCS API. למרבה הצער, ממשקי ה-API הוסתרו ממפתחים וניתן להשתמש בהם רק על ידי אפליקציות ברשימת היתרים נסתרת - הכוללת את אפליקציית Google Messages. אמנם אפליקציית Google Messages השתפרה בהרבה לאחרונה, אבל היא עדיין קיימת מעודכן עם תכונות בסיסיות תמצא בהרבה אחרים אפליקציות הודעות טקסט לאנדרואיד. הבעיה במעבר לאחת מהאפליקציות האחרות האלה היא שלא תוכל לשלוח הודעות דרך RCS, כך שתפסיד את כל התכונות שדיברנו עליהן למעלה. עם זאת, מצאנו ראיות לכך שלגוגל יש "Android Messages API" לא מפורסם המאפשר לכל אפליקציית הודעות טקסט של צד שלישי לשלוח הודעות SMS/MMS/RCS באמצעות Google Messages.

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

כאשר Google Messages הושקה היום ב-Google Play, פענחנו את ה-APK וגילינו את המחרוזות הבאות במשאבים שלו:

<stringname="external_messaging_api_description">With this permission the app will be allowed to send SMS/MMS/RCS using Android Messages. It will have an access to send messages without any extra approvals.string>
<stringname="external_messaging_api_label">Permission to send SMS/MMS/RCS messages using Android Messages APIstring>

מחרוזות אלו מתארות בבירור הרשאה שאפליקציות צד שלישי יכולות לבקש כדי להיות מסוגלות לשלוח הודעות SMS, MMS או RCS דרך אפליקציית Google Messages. בתוך הקובץ Manifest של אפליקציית Google Messages, מצאנו גם את ההרשאה שאפליקציות העברת הודעות יצטרכו להצהיר:

<permissionandroid: description="@string/external_messaging_api_description"android: label="@string/external_messaging_api_label"android: name="com.google.android.apps.messaging.EXTERNAL_MESSAGING_API"android: permissionGroup="android.permission-group.SMS"android: protectionLevel="dangerous"/>

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

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

עדיין לא מצאנו הודעה מ-Google ב-Android Messages API זה, אך אנו מקווים לראות אותו ייפתח בקרוב. אפליקציות צד שלישי להודעות טקסט נמצאות בנחיתות כרגע מכיוון שאין להן תמיכה ב-RCS, אך ה-API הזה אומר שתוכל להשתמש באפליקציית הודעות הטקסט המועדפת עליך וליהנות מהיתרונות של RCS. כמובן, אפליקציית הודעות הטקסט של צד שלישי תצטרך ליישם בפועל את ה-API החדש, אבל לא נראה שזה יהיה קשה מדי ליישום.

הודעותמפתח: Google LLC

מחיר: חינם.

4.2.

הורד

עדכון 1: API נמצא רק בגרסת סמסונג של האפליקציה

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


עדכון 2: API מוגבל לאפליקציות סמסונג

חפירה עמוקה יותר באפליקציית Google Messages (h/t 9to5Google), מצאנו הוכחות לכך שה-Android Messages API זה מוגבל כעת לשימוש על ידי אפליקציות נבחרות של סמסונג. באופן ספציפי, נראה שהתכונה הזו נועדה לאפשר למכשירים לבישים של סמסונג ולטאבלטים מחוברים לשלוח הודעות SMS, MMS ו-RCS דרך Google Messages. זהו חלק מתכונת השיחות וההודעות המשכיות של סמסונג.

רשימת ההיתרים הנוכחית כוללת את החבילה ל- Call & Message Continuity, כלומר. "com.samsung.android.mdecservice", בין אפליקציות אחרות. הקוד בודק את שם החבילה והחתימה של האפליקציה המבקשת לפני מתן גישה ל-API. דגל מאפשר לכל אפליקציה לגשת ל-API, אך ערך זה נועד בבירור לא לשימוש ציבורי. (הדגל נקרא באופן מתאים "allow_any_app_to_connect_do_not_use_in_public_builds".)

תודה ל-PNF Software שסיפקה לנו רישיון שימוש Decompiler של JEB, כלי הנדסה לאחור ברמה מקצועית עבור יישומי אנדרואיד.