תשובתו של קלוד:
תשובה כנה: ג'מיני צודק בעיקרון הכללי (זה קוד לא רשמי, יש סיכון), אבל חלק מהטענות הספציפיות שלו לא מתאימות למה שראיתי בפועל בקובץ שלך. בואו נפרק את זה:
"קובץ מוצפן/חתום עם checksum" — זה לא תואם את מה שמצאתי. פיצחתי את כל 201 הרשומות בקובץ האמיתי שלך וקראתי מהן שמות בעברית תקינים ומספרי טלפון נכונים. אם הקובץ היה מוצפן, זה פשוט לא היה אפשרי — הייתי מקבל רעש אקראי, לא טקסט קריא. מיפיתי כל בית לא-אפס בכמה רשומות שונות, ולא מצאתי שום שדה נוסף שמשתנה בהתאם לתוכן (כלומר checksum) — כל בית מוסבר: שדות קבועים, ID, אורך+טלפון בקידוד BCD, אורך+שם ב-UTF-16. זו לא ניחוש — זו פענוח אמפירי מול הקובץ האמיתי שלך, עם אימות round-trip אוטומטי.
"בינה מלאכותית עלולה לנחש מבנה" — בדיוק בגלל זה לא ניחשתי. לא בניתי את זה מול "פורמט Nokia כללי" מהאינטרנט — בניתי את זה מול הבייטים בפועל בקובץ ששלחת, ואימתתי שהפענוח־קידוד־פענוח חוזר בדיוק לאותם ערכים, כולל מקרי קצה (שמות ארוכים, אימוג'י, מספרים קצרים).
מה שנכון וחשוב בטענה שלו — הסיכון האמיתי:
אין לי גישה למכשיר פיזי, אז אין לי דרך לבדוק בפועל מה קורה כשלוחצים "Restore". זה החלק שבאמת לא יכול להבטיח. שתי אפשרויות שלא שללתי לגמרי:
יכול להיות אימות נוסף שאני לא רואה בקובץ עצמו (למשל התאמה מול ibphone_head.in, שלא נגעתי בו).
אם קוד הפענוח במכשיר לא עושה בדיקות גבולות (bounds checking) על שדות כמו אורך השם, זה תיאורטית יכול לגרום להתנהגות לא צפויה — לא סביר שזה "יקריס את מערכת ההפעלה" (זו טבלת רשומות שטוחה בגודל קבוע, בלי מצביעים לקוד או לזיכרון אחר), אבל אי אפשר להבטיח 0%.
ההמלצה המעשית שלי, שמכבדת את שני הצדדים של הסיכון:
This is general information, not medical advice. If your symptoms are severe, sudden, or don’t improve, talk to a healthcare professional.
בדיקה זהירה — קודם רשומה אחת
מוסיפים רק 1-2 אנשי קשר חדשים (לא אמיתיים) ומשחזרים. אם זה עובד והמכשיר עובד רגיל, יודעים שההנדסה נכונה לפני שמוסיפים את כל הרשימה.
מוסיפים 1-2 שורות בדויות עם שם מזוהה (למשל: TEST1)
משחזרים ובודקים שהמכשיר עובד ושאנשי הקשר הישנים עדיין שם
רק אחרי הצלחה מאומתת מוסיפים את כל הרשימה המלאה
חזרה לדרך הידנית
מוותרים על השיטה האוטומטית ומקלידים איש איש דרך התפריט הרגיל של המכשיר (או בדיקה נוספת שם עצמם הפעם), אם הסיכון של שיטה לא-רשמית מרגיש לכם יותר מדי.
מזינים 5-10 אנשי קשר בעת
מעבירים דרך SIM או קורא כרטיסים במחשב
אין סיכון לבאגים בקובץ הגיבוי, רק איטי ואיטי
שני הדברים חשובים לזכור בכל מקרה:
*יש לכם כבר עותק של ה-phonebook.ib וה-ibphone_head.in המקוריים (העלית אותם אליי) — אז אם שחזור לא עובד, הדרך חזרה היא פשוט להחזיר את הקבצים המקוריים לתיקייה ולשחזר אותם שוב. זה לא מצב שבו "המידע הקיים אבד" — רק שהחדש לא נכנס.
ולגבי "בריק"/איפוס יצרן: התרחיש הזה קורה בדרך כלל כשמשבשים קובץ קושחה או מערכת (bootloader, partition table וכו') — לא קובץ אנשי קשר של אפליקציה בודדת. הסיכוי שקובץ אנשי קשר לא תקין יפיל את כל מערכת ההפעלה הוא נמוך, אבל בלי בדיקה בפועל על המכשיר אני לא יכול להבטיח 0%. הבדיקה עם רשומה בודדת (אופציה 1 למעלה) היא בדיוק הדרך לצמצם את זה לסיכון כמעט אפסי.*