תגית: אנדרואיד

אנדרואיד חופשי – לא באמת

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

אז, אני מנסה מחדש לנסות את AOSP בלי GApps, המכשיר שלי הוא Mako4 – נקסוס4. מכשיר ישן, אבל עדיין חזק ושימושי. הינה רשימה של תוכנות שאני משתמש בהן ביום יום:

  1. אני משתמש במרקט החופשי של FDroid. נכון, כמות התוכנות השוות שם ממש נמוכה…
  2. סנכרון יומנים ואנשי קשר, אל שרת OwnCloud בעזרת DavDroid
  3. פתקים, גם בעזרת OwnCloud. יש שתי תוכנות, אני משתמש בזאת
  4. אני צופה ב־RSS feeds שנמצאים בשרת OwnCloud שלי בעזרת: OwnCloud notes
  5. צפייה ב־YouTube אפשרית בעזרת NewPipe
  6. אימייל… בעייה. אני רוצה לראות את מה שנשלח לג'ימייל שלי. אבל גוגל … זונות. אז הם המציאו מנגנון אבטחה משלהם וכדי שיישומים רגילים יכלו להיכנס דרך IMAP עם ססמה כרגיל, צריך לסמן שאנחנו רוצים אבטחה נמוכה יותר:
    https://www.google.com/settings/security/lesssecureapps ברגע שמסמנים שם – תוכנות אימייל (K9Mail או התוכנה הרגילה של AOSP).
  7. ניווט: אין מנוס, יש רק OSMDroid והוא ממש רע.
  8. עבור Reddit אני משתמש ב־RedReader (האמת תוכנה ממש לא רעה מומלצת לכולם).
  9. לטובת צ'אט – אני משתמש כרגע בגרסה מתוקנת משלי ל־Conversations שכוללת תמיכה טובה יותר בעברית. אני צריך לתקן אותה ולבקש merge. התוכנה זמינה ב־FDroid.

מה אני מחפש:

  1. האם יש ל־Instagram איזהשהוא API למתכנתים…? האם יש יישום חופשי…?
  2. האם יש אפפ חופשי עבור Facebook?
  3. אני משתמש בתוכנה SMS & Call Log Backup לגיבויים. מה זמין שהוא חינמי…?
  4. יש כמה אפליקציות לא חופשיות (אבל חינמיות) שאני צריך.  אני כרגע מוריד מהאינטרנט את ה־apk מאתר http://www.apkmirror.com/‎‏‏ אבל אני מחפש משהו יותר מסודר. השתמשתי פעם ב־http://m.aptoide.com/‎ אבל אני לא יודע אם "כרגע" זאת התוכנה להשתמש בה. חשוב לי – שהתוכנה לא תדרוש רישום.

מה הבעיות שלי:

  1. אני משתמש כרגע בבנייה שלי של Cyanogenmod, אבל מחפש משהו אחר. כמה שיותר קרוב ל־AOSP.
  2. משום מה… ה־GPS לוקח לו המון זמן לקבל מיקום. משהו כמו… 20 דקות. לא כיף, והופך את הניווט למשהו לא אפשרי. מעניין מה GApps עושים כדי לתקן את הבעייה.

לסיכום – אם אני משתמש במערכת הפעלה חופשית ותוכנות חופשיות במחשב שלי, אני מצפה לעשות את זה גם בסלולרי שלי. המצב כרגע… משהו כמו 1998 בלינוקס, אבל אני מקווה שזה ישתפר.

בתור בונוס לקורא – הינה מצלמה שמוצבת בחללית ומכוונת מטה – אלינו כדור הארץ. משדר ב־HD במשך כל היום. מדהים: https://www.nasa.gov/multimedia/nasatv/index.html#iss

Share

המסע אל אנדרויד 10 – MotoX 2014

אמלק: המכשיר משמש אותי לעבודה יום יומית. סוללה שלו כיום (לאחר כשנה של שימוש) מחזיקה יום שלם. אני נותן לו ציון מושלם של 5 מתוך 7.

מה נשתנה מפעם האחרונה שכתבתי בנושא זה (למשועממים – הינה קישור לכל הפוסטים בנושא המסע האישי שלי אל שימוש באנדרויד): ה־Galaxy S1 שלי עבר דירה. במקומו קניתי Nexus 4. השתמשתי בבלידים של Cyanogenmod, היה מגניב. הוא נפל לי מהיד, המסך נשבר. החלטתי לקנות מכשיר חדש, קניתי MotoX 2014, דור שני.

כמה מילים על המכשיר:

  1. המכשיר בנוי טוב. מוצק, ולא רוטט.
  2. הסוללה שלו מחזיקה בערך יומיים המתנה, בערך יום שימוש (שלי).
  3. המיקרופון שלו מעולה, הוא מצליח להקליט מהכיס שלי (ולאחר הגברה, ניקוי רעשים כללי ו־compression בעזרת audacity) הקלטות נשמעות מעולה.
  4. נניח שהמצלמה בסדר, אין לי מושג.
  5. יש בלידים מסודרים של Cyanogenmod והם עובדים לא רע (עוד לא עברתי אל Android 6).
  6. למכשיר יש שני (שלושה) פיצ'רים שחסרים לי בכל מכשיר אחר (הוידאו הזה הוא על דגם אחר, אבל מדגים את כולם), כל הפיצ'רים הללו עובדים גם ב־cm:
    1. כאשר אתה מנופף את היד מול המסך, החיישן תנועה מגלה את זה וזה מתפקד כמו לחיצה על power. זה גם מאפשר לי לסתכל על השעה (או התרעות) בלי מגע פיזי. זה יותר קל מללחוץ על כפתור power.
    2. כאשר אתה מנער את המכשיר ביד, כמו לחיצת יד, נדלק האור/פנס. מעולה בלילה בהליכת פיפי.
    3. כאשר אתה מחזיר את המכשיר ביד ומנער אותו מצד לצד (כמו… פתיחה של ברז…) המצלמה נדלקת. פי'צר חסר שימוש.
  7. אין טעם שאני אסביר על כמה שהקוד דומה ל־upstream והוא stock ROM כי אני לא מאמין בזה. עבדתי בפיתוח אנדרויד (בניתי ROM בחברה מאוד גדולה) ואני יודע שגם אם ה־UI לא השתנה, הקרביים שונה. מאוד. אני לא מאמין שהמוטורולה/לנובו לא שינו את הקוד בפנים. (ללא קשר לרוגלות). אבל… הממשק הוא לא סוטה ממה שרואים ב־AOSP, וזה טוב.

האם הייתי ממליץ על המכשיר? בהחלט. למרות הגודל שלו. הוא גדול מדי ולא נוח לי. המכשירים שיצאו אחריו (למשל Moto X Play שמוכרים בארץ) ענקיים וממש לא נוחים להחזקה ביד. המכשיר לא נמכר בארץ, והייתי צריך לדאוג לייבוא אישי שלו. המכשיר מאוד זול (עלה לי בסביבות 1500₪ בזמנו). בעייה אחת היא: כיוון שהוא לא כזה מוכר קשה למצוא בשבילו מארזים או מגני מסך. אבל… אפשר למצוא בודדים באיכות טובה (לא כזאת).

Share

גיבויים באנדאויד

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

סוג ראשון – זמין בכל אנדרויד 4.0 – adb backup

כל שצריך הוא android-sdk מותקן על המחשב (למעשה את הפקודה adb בלבד) ואפשר לגבות איתה. השימוש הוא פשוט, לכתוב את הפקודה הבאה במחשב תוך כדי שהמכשיר הסלולרי מחובר למחשב:

adb backup  -f backup-2015-2-15.ab -apk -bb com.whatsup com.pinterest

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

adb shell pm list packages | grep firefox
package:org.mozilla.firefox

לשיחזור, משתמשים בפקודה הבאה:

adb restore backup-2015-2-15.ab

כמה הערות:

  1. כשיתחיל הגיבוי בטלפון יהיה חלון שבו תתבקשו לשים ססמה כדי להגן את הגיבוי. אני סטלן ושוכח את הססמאות… אז לפעמים אני שם את הססמה בשם הקובץ… אבל לאחרונה גם וויתרתי על זה ואני פשוט מאשר כדי לעשות גיבוי ללא ססמה.
  2. אם גיבית אם ססמה – כדי לשחזר צריך גם ססמה. אם אין ססמה – אי אפשר לשחזר, מניסיון :)
  3. אין בעיות להעביר גיבוי בין מכשירים. אני העברתי את whatsup כולל היסטוריה מלאה של שיחות, כמה פעמים בין מכשירים בטכניקה הזאת.
  4. אני יצרתי סקריפט ששומר מספר חבילות (כאלו שאין בחנות של אנדרויד, שזמינות דרך FDroid) וגם שם את התאריך בשם הקובץ (שימוש בפקודת לינוקס date).
  5. אם תשימו את דגל -shared בסוף הפקודה (המקף מצד שמאל למילה) תגבו גם הגדרות כלליות של המכשיר (אני חושב שגם תמונות). אני מגבה אותן ידנית, פשוט מעתיק למחשב.
  6. כדי לגבות ולשחזר שיחות ו-SMS אני משתמש בתוכנה SMS & Call backup
  7. אנשי קשר ופגישות נשמרים בשרתים של גוגל. אני אישיתי משתמש ב-OwnCloud ומשתדל לא לשים אנשי קשר שם (וזה ממש קשה, גוגל די דוחפת שאני אעשה את זה, גם אם זה בטעות).
  8. בדביאן ניתן להתקין את החבילה android-tools-adb במקום להוריד כמה מגה מהשרתים של גוגל של android-sdk.

גיבוי שני – דרך ה-recovery. יפורסם בעתיד.

Share

שידרוג אל Lollipop – מפתיע לטובה – חלק תשיעי בסדרה

(בניגוד לפוסטים קודמים בסדרה, כעת אני מדבר על נקסוס 4 ולא Galaxy S1, תתגרלו לזה…)

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

ראיתי שיש nightly builds של CyanogenMod אבל בפורומים מתלוננים על בעיות ילדות. החלטתי להיות אמיץ ולהתקין את הרום המקורי של אימאבא-שמוגל-גוגל. עשיתי את הניסוי הזה כאשר 5.0.0 יצא, ולא הייתי מרוצה. כיום אני מריץ את 5.0.1 ומרוצה בצורה מוזרה. מאוד.

  1. המכשיר מחזיק בהמתנה יומיים. כן, משהו כמו 40 שעות (סוללה חדשה… עלתה 150 ש"ח…). יותר טוב מהיום בו קניתי את המכשיר (עוד מידע כאן).
  2. העיצוב מחריד. שטוח מדי. יותר מדי צבעוני. נראה כאילו ילד זרק צבעים על קיר בצורה אקראית. אני ממש מתחבר אל holo יותר מה-Matrtial design. המסך הוא דו מימדי … אז לנסות להוציא ממנו תלת מימד… לא נראה לי. אהבתי את זה ש-Holo הבין שהוא במדיה דו מימדית ולא התפשר.
  3. ברום החדש אין גלריית תמונות עצמאית. יש אחת שקשורה אל גוגל פלוס, אז צריך להתקין אחת צד שלישי. אני התקנתי את זאת  Gallery KK – Gallery ICS, ושילמתי למפתח 5 ש"ח כדי שלא יהיו לי פרסומות. אם תימצא תוכנה חופשית – אני אחליף את התוכנה שוב.
  4. השעון המעורר נשמע חלש מדי, שימו לב לזה.
  5. המעבר אל Art מורגש. כמו כן, הקטינו את הזמן של הרבה אנימציות (פסיכולוגיה עוזרת במדעי המחשב…). המכשיר מרגיש ממש מהיר עכשיו.
  6. המעבר אל Art מצוין למפתחים!!!!!11 בגרסאות קודמות של אנדרויד לדבג תוכנה step by step היה כואב. מעבר בין שורות ב-Android Studio היה לוקח שלוש שניות. כיום ב-Lollipop מה שמאט זה ה-UI של ה-IDE. טוב שיש לי מחשב חזק… עכשיו אפשר לכתוב תוכנות דפוקות ל-Desktop… (אני קורא לזה התקדמות אחורה).
  7. בהגדרות של הסוללה נוסף גרף שיודע להציג מתי הסוללה תיגמר ומתי ההטענה שלה תסתיים. ראיתי את זה בתוכנות צד שלישי. זה פיצ'ר שקשה לתאר כמה הוא חשוב.
  8. יש המון תוכנות bundeled של גוגל. החלטתי להפסיק איתן (אי אפשר להסיר כי הן ב-System partition). דוגמאות: Google Plus, News Stand, Games, Music, Keep. אני מזכיר שאין תוכנת גלריה, והתקנתי אחת צד שלישי. אני אשמח להצעות נוספות בקשר לגלריה.

מה חסר לי:

  1. privacy manager. למעשה Firewall אל אנשי קשר, הודעות ומיקום.
  2. root – אני בטוח שאפשר לקבל פה root בכוח, אבל זה לא מרגיש לי נכון. אני אשבר ואעשה את זה בקרוב בכל זאת.
  3. Bootloader שיודע לעשות גיבויים. אני צריך לכתוב פוסט פה על גיבויים וזה יהיה ברור למי שלא מבין על מה אני מדבר.
  4. ברום הרגיל של אנדרויד אין תמיכה ב-adb דרך הרשת. לפחות לא ללא root.
Share

צריבה של ROM עבור Galaxy S1 i9000 מלינוקס

בפוסט קודם הסברתי על אודות מחיצות באנדרויד. "הקהילה" קוראת לאסופה של ה־images של המחיצות הללו בתור ROM. אין הרבה הסברים באינטרנט שמסבירים איך לצרוב מכשירי Galaxy S i9000 בעברית בלינוקס. אז – מעכשיו יש.

  1. תורידו את ה־ROM־ים המקוריים של החברה המתאימה לכם. אין בעייה גדולה לשים רום של חברה אחרת. אם זה לא עובד, אפשר לצרוב את המודם המתאים. באתר של iAndroid יש קישורים להורדה: http://iandroid.co.il/forum/viewtopic.php?f=42&t=18962
  2. הקבצים שתורידו הם self extracting exe לחלונות. אצלי wine עשה את מלאכתו נאמנה והקבצים שנוצרו וחתימות ה־MD5 הם (קבצי ה־exe הם ממש ישנים, ייתכן ועכשיו יש קבצים עם חתימה שונה, מה שחושב זה קבצי ה־tar שנוצרים מהם):
    82d5a5fffd1fea566aab7fe39522aa2c  I9000.Cellcom.JIJVG.exe
    0cb6ef26ce3076c5b3ffde7cb2ad2a1a  I9000.Partner.JHJVG.exe
    254ef10b0ddacfeabc44cf547082e856  I9000.Pelephone.JJJVB.exe
    eedb05d074db2026b38c8f00ca18f935  Cellcom.JIJVG.tar
    33535d9aff3e39d04b0cc504ac389b51  Pelephone.JJJVB.tar
    7d593eae36a2d5151e6a84454c739827  Partner.JHJVG.tar
  3. עכשיו צריך לפתוח את אחד הקבצים, בתוך ספרייה חדשה (לדוגמה):
     mkdir open-android-firmware
     cd open-android-firmware
     tar xf ../Cellcom.JIJVG.tar
  4. כדי לצרוב צריך גם קובץ pit שמגדיר את מבנה המחיצות. חיפוש ברשת אחר s1_odin_20100512.pit  תניב קובץ שהתחימה שלו היא 1d927b36d2fa807a22e64fc86b445130
  5. צריך גם קובץ שמגדיר dbdatafs, הוא נקרא גם PDA (אין לי שמץ של מושג מה זה). אותו אפשר להוריד מכאן: http://forum.xda-developers.com/showthread.php?t=2184403 החתימה של מה שהורדתי היא 868b81b9e28d30c82a00038d29e65d8c
  6. הצריבה תיעשה על ידי תוכנה heimdall. היא זמינה מהמאגרים החופשיים של דביאן. להתקנה:
     sudo apt install heimdall-flash
  7. אופציונאלי: אני לא אוהב להשתמש ב־root, ולכן הגדרתי חוק udev שהמכשיר יהיה ניתן לתכנות גם בעזרת המשתמש שלי. צריך רק לדאוג שהמשתמש יהיה תחת הקבוצה plugdev ואז החוק הבא יעבוד (זה גם טוב לעבודה מול adb בתור משתמש רגיל, ולכן מומלץ).השורה אחרונה מתאימה לגלקסי, האחרות לנקסוס וואללה, לא זוכר :)
    elcuco@pinky ~ $ cat  /etc/udev/rules.d/51-android.rules 
    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev" 
    SUBSYSTEM=="usb", ATTR{idVendor}=="681c", MODE="0666", GROUP="plugdev" SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
  8. בשלב זה נשים את המכשיר במצב download. תוציאו את המכסה האחורי,ואז תוציאו את הסוללה (פשוט לתת מכה והיא יוצאת). תכניסו מחדש את הסוללה ואז ללחוץ על השילוש הקדוש: מקש הבית, כפתור שמע תחתון וכפתור ההדלקה. על הצג יהיה אנדרויד צהוב.
    המלצה: לא לשים את המכסה אחורי. יהיה יותר קל להוציא את הסוללה ולהתחיל מההתחלה, ואני מבטיח שיהיה צורך בזה :)
  9. כעת פשוט מפעילים את הפקודה הבאה (אני שמרתי אותה בתסריט בשם flash-all.sh)
    heimdall flash --repartition  \
       --pit s1_odin_20100512.pit \
       --FACTORYFS factoryfs.rfs  \    
       --CACHE cache.rfs          \
       --DBDATAFS dbdata.rfs      \
       --IBL+PBL boot.bin         \
       --SBL Sbl.bin              \
       --PARAM param.lfs          \
       --KERNEL zImage            \   
       --MODEM modem.bin
  10. זהו. הצריבה לוקחת כמה דקות ואחרי המכשיר עולה כמו חדש.

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

המלצות נוספות:

  1. אל תנסו את זה בחלונות. צריך להשתמש בתוכנה odin שאין לי מושג מה היא עושה מי כתב אותה. זאת הדלפה של מישהו ואני לא סומך על קוד של מישהו אחר במחשב שלי. התוכנות שיש בלינוקס נבדקו והן קוד פתוח, אני סומך עליהן יותר.
  2. תוודאו את החתימות (md5 במיקרה של מה שאני נותן כאן).
  3. כמה שיותר מהר נסו לשים רום אלטרנטיבי. cyanogenmod הוא בסדר גמור. אני חושב ש־Replicant יהיה יותר טוב – אבל לא בדקתי אישית, והוא לא זמין לכל מכשיר.
  4. על מכשיר ישן זה, לא הייתי ממליץ על gapps כלל. אני השתמשתי ב־FDroid והשלמתי כמה תוכנות עם Aptoid. האחרון מפוקפק משהו… אבל זאת פשרה שאני נאלץ לחיות איתה.
  5. כדי להחליף מודם, יש לשים את המכשיר במצב download ולצרוב בעזרת הפקודה הבאה (את המודם צריך לקחת מהרום המתאים):
    heimdall flash --MODEM modem.bin
  6. אם דילגת על השלב של udev פשוט לשים sudo לפני כל פקודה.

שאלות שנותרו לי ללא מענה:

  1. מה התוכן של dbdata.rfs ומה המטרה של המחיצה הזאת.
  2. מה זה param.lfs.

תזכורת: מחיצות באנדרויד

Share

שידרוג אל cyanogenmod 10.1.2 – אנדרויד 4.2.2 – חלק שמיני בסדרה

הטלפון שלי מקרטע. לפתוח את רשימת אנשי הקשר לוקח לפעמים כמה שניות. חקרתי והבנתי שמה שקורה זה שאין לי מספיק זכרון. היישומים שיש עבור 4.2.2 פשוט צורכים יותר זכרון ממה שיש לי. התקנתי אנדרויד 2.3 והטלפון הגיב יפה. טוב – נעשה ניסוי: נתקין אנדרויד, אבל בלי השטויות של גוגל. זה אומר בלי gapps.  אז התקנתי Cyanogenmod 10.1.2 – נקי.

מה קורה? הטלפון שלי פשוט מגיב מהר. באמת הכל קורה מיידית! אז איך מתקינים יישומים? דרך תוכנה חופשית. אני משתמש כרגע ב־f-droid. יש מעט יישומים, אבל חלקם מאוד מעננינים. אני אכתוב עליהם בפוסט אחר. אני כן רוצה להדגיש איזה עבודה טובה האנשים עושים שם. הם לא מקבלים apk מוכן, אלא מקמפלים בעצמם, וכמו כן כאשר יש שימוש בקומפוננטות סגורות הם משכתבים (למשל: ספריות פרסומות, הם כותבים ספריות חדשות עם stubs). אם אין אפשרות להסיר את התלות – זה כתוב בהסברים של התוכנה. וכמו כן, מה שהכי מפתיע אותי, זה שהסברים על התוכנה לא נכתבים על ידי המפתח, אלא על ידי ההפצה. יש הסברים לגבי איזה גרסה טובה ומה עובד ומה לא. ממש תענוג לקרוא.

כרגע, אני רוצה להסביר אודות החוייה המסורסת שיש לי.

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

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

עוד קריאה מעניינית שהיא קשורה ולא קשורה, הוא "למה יישומי ווב הם איטיים".

Share

שידרוג אל Cyanogenmod10 – חלק חמישי בסדרה

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

מה השתנה בגרסה הזאת?

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

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

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

תזכורת:

  1. חצי שנה עם אנדרויד
  2. חצי שנה עם האנדרויד – חלק 2 – PilotX
  3. חצי שנה עם האנדרויד – חלק 3 – cyanogenmod
  4. שידרוג אל Cyanogenmod9 – אנדרויד4 – חלק 4 בסדרה
Share

שידרוג אל Cyanogenmod9 – אנדרויד4 – חלק 4 בסדרה

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

השידרוג הוא משעמם, ובגדול עבר חלק. לאחר השידרוג הכל עבד למעט המקלדת שפשוט נתקעת ונסגרת כאשר אני כותב בעברית, אז התקנתי מקלדת חדשה (Hacker Keyboard – ממש טובה ודומה למקורית, ככה שלא הפסדתי חוויה אוטנטית). הבעייה השנייה הייתה שהגלריה פשוט קרסה בעלייה. הפתרון היה פשוט: ללכת להגדרות של הגלריה (הגדרות -> יישומים ->  הכל -> גלריה -> נקה נתונים).

אני רוצה להדגיש: שידרגתי גרסה של מערכת הפעלה בסלולרי, ולא איבדתי שום מידע. לא סימניות, אנשי קשר, יישומים.. הכל עבד חלק, למעט שתי תקלות קטנות שפתרתי אותן בקלות. אני כן יכול להגיד… שהמכשיר לפעמים מרגיש יותר כבד. זמן העלייה של היישומים יותר גדול, ו־Waze לוקח לי מלא זמן לתת הנחיות: "בעוד…. מאתיים……. ….. … מטר….. פניה… ימינה!". מעיק משהו במיוחד כשאתה שומע פודקסטים!

Share

התקנה של cyanogenmod על Galaxy S I9000

השבוע התניסתי בהתקנה של Android על מכשיר Galaxy S I9000 חדש. ניסיתי להתקין את גרסה 9 של Cyanogenmod על Galaxy S (יש כבר גרסאות ליליות – כאן http://download.cyanogenmod.com/?type=nightly&device=galaxysmtd). אני אחסוך לכם את הטרחה – הן לא עובדות. האפליקציה של החיוג קורסת, אי אפשר לקבל או לשלוח שיחות או להכנס אל אנשי הקשר. בדקתי כמה רומים שונים (גם של MIUI). נחזור את Android 2.3.7 הישן והטוב.

השוני מהפעמים הקודמות הוא שהפעם את הכל ביצעתי באמצעות לינוקס. וזה בגדול מה שאני אסביר כאן. ההוראות מבוססות על מה שיש כאן: http://wiki.cyanogenmod.com/wiki/Samsung_Galaxy_S:_Full_Update_Guide

לצורך הכנות יש להוריד את הקבצים הבאים:

  1. תוכנה לצריבה של ה־boot loader. משהו מקביל ל־ODIN.  גרסה לחלונות ; גרסאה לאובונטו 32גרסה לאובונטו 64; גרסה למק;  קוד מקור (יש!): http://github.com/Benjamin-Dobell/Heimdall
  2. קרנל ראשוני מכאן: http://cmw.22aaf3.com/aries/gt-i9000/root/hardcore-speedmod.tar . מחלצים את התוכן שלו על ידי הפקודה
    tar xfv hardcode-speedmod.tar
  3. את הגרסה היציבה של cyanogenmod מכאן: http://download.cyanogenmod.com/get/nightly/galaxysmtd/cm_galaxysmtd_full-181.zip
  4. את התוספות של גוגל (Google play בעיקר – זה הכי חשוב): http://cmw.22aaf3.com/gapps/gapps-gb-20110828-signed.zip

הוראות הצריבה הן די פשוטות:

  1. מכניסים את המכשיר למצב הורדה. מכבים את המכשיר, ובהדלקה לוחצים על כפתור השמע התחתון, כפתור מסך הבית וכפתור הבית או כפתור ההדלקה. המכשיר ירשום downloading ויהיה סמל של אנדרויד סולל כביש.
  2. מחברים את המכשיר למחשב וכותבים את הפקודה הבאה (בחלונות אתם תשתמשו במעטפת הגרפית ותעשו משהו דומה, כמו כן – תסתכלו בהוראות באנגלית יש עוד פעולות).
    heimdall flash –kernel zImage
  3. המכשיר ייכבה ויידלק. כעת יש להיכנס ל־Recovery mod. בעת ההקלדה לוחצים על כפתור השמע העליון ומסך הבית. הניווט כאן מתבצע באמצעות הכפתורים של השמע, וכפתור ההדלקה.
  4. נכנסים אל mount and storage ובוחרים mount USB storage. כעת במחשב שלכם תוכלו לראות את המכשיר הסלולרי כמו כונן נשלף.
  5. תעבירו את הרום ואת התוספות של גוגל מהמחשב לסלולרי (שני קבצי ה־zip האחרונים בהורדות). חשוב מאוד – חכו שהעברת הקבצים תסתיים (הממשק הגרפי אצלי הודיע שהסתיים לפני שלינוקס סיים לכתוב את הקבצים בפועל… אחלה buffering), ואז תנתקו בצורה מסודרת את מערכת הקבצים (umount) במחשב ורק לאחר מכן בסלולרי (פשוט לבחור ב־umount USB storage בסלולרי).
  6. בסלולרי תבחרו על Go Back ואז ב־install zip from sdcard 
  7. בתפריט הבא אתם תנווטו בדיסק של המכשיר – ותבחרו את ה־zip של cyanogenmod.
  8. תחזרו על אותה פעולה וכעת בחרו ב־zip של התוספות של גוגל.
  9. המכשיר מותקן כרגע, לפני השימוש יש לנקות אותו טיפה.

כעת יש לנקות את הסלולרי:

  • wipe data/factory reset
  • wipe cache partition
  • advanced/Wipe Davik Cache
  • advaned/Wipe Battery status
  • reboot recovery
  • reboot system now
  • זהו. המכשיר שלכם מוכן, מזל טוב

כמה הערות לסיום:

  1. התקנה כזאת יכולה להפוך את המכשיר לאבן – קריא: הוא לא יעבוד כלל או במיקרה הטוב תאבדו נתונים. ראו הוזהרתם.
  2. החברות הסלולריות לא תמכנות בגרסה זו, ולכן אתם מאבדים אחריות על המכשיר – ואם תשלחו אותו לתיקון, יש סיכוי שיחזור עם הגרסה שלהם.
  3. כשניסיתי להתקין את heimdall אצלי במחשב (אובונטו 11.04) זה התלונן על גרסה של libusb1 ישנה מדי. התקנתי בכוח (dpkg –force-all -i …) וזה עבד בכל זאת. קימפול הגרסה מ־git כשלה אצלי גם.
  4. בעת ההתקנה בסלולרי אפשר לבחור rom־ים אחרים, התהליך הוא זהה. למעשה ככה התקנתי שלושה ארבעה רומים שונים לניסיון – פשוט בוחרים zip אחר.
  5. משום מה אצלי ה־rom של cyanogen נכשל בהתקנה בכמה פעמים הראשונות. התקנתי כמה rom־ים אחרים ואחרי זה הוא החליט שהמכשיר הזה תקין לגמרי (לפני זה הוא התלונן שהמכשיר הוא לא I9000. מוזר?)
  6. כמובן שהתהליך הזה מוחק הכל. תדאגו לגיבוי.
  7. במכשיר שהתקנתי עליו הבעלים שמר הכל בגוגל, לכן אחרי ההפעלה הראשונית המכשיר סנכרן מחדש את האפליקציות. מומלץ להתחבר לרשת אלחוטית כמה שיותר מהר כדי שלא יגמור לכם את המכסה שלכם.
  8. הסנכרון המדובר לקח בשעה במכשיר, ומשום מה לא כלל אנשי קשר (גיביתי אותם בנפרד באמצעות התוכנה הבאה. לצערי הייתי צריך לקנות אותה, כי בעת השחזור היא התלוננה שהמידע הוא ממכשיר אחר וזה לא אפשר בגרסה החינמית (אשמח להצעות אחרות).

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

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

Share

טיפים לעבודה ב־C++‎ באנדרויד

בשבועות האחרונים עבודה אני עובד על יישום C++‎ שבגדול אמור לרוץ על אנדרויד. החלטתי בתור התחלה לכתוב את זה על PC רגיל כדי להשתמש בכלים פשוטים ורגילים (QtCreator, cmake, valgrind ועוד…). ברגע ההסבה לאנדרויד נתקלתי בכמה דברים:

  1. לגרום ל־cmake לקמפל עבור אנדרויד לא מסובך מדי, רק לקבוע כמה משתני סביבה לפני ההרצה של cmake וזהו. פרטים כאן: http://opekar.blogspot.com/2011/06/android-cmake-is-much-easier-in-ndk-r5b.html
  2. להשתמש בקבצי הכללה של C++ ואז לעשות using namespace זה מגניב, אבל לא עובד. ב־NDK האחרון הם לא נמצאים. פשוט תשתמשו בקבצי ההכללות הישנים והטובים של C.
  3. בעת הקישור (linking) אין צורך לקשר את pthreads, הפונקציות של threads נמצאות ישירות ב־Bionic. אין צורך לעשות -lpthread.
  4. אם אתם משתמשים בטריקים מלוכלכים כמו לקרוא ישירות ל־syscall יהיו לכם בעיות. השמות של הקריאות שונה. אני לא מסביר מעבר לכך כאן, מי שמספיק חכם לעשות דברים כאלו יידע למצוא את השמות המאימים ולעשות את ההתאמה בעזרת ifdef במקום מרכזי אחד (אני הגדרתי מחדש לפי השמות של glibc).

בשביל מספר 3 (חחח) אני השתמשתי בקטע קוד הזה בקובץ cmake שלי:

if( $ENV{BUILD_ANDROID})

    message(“Building for android, not linking pthread”)
else()
message(“Building for glibc, linking pthread”)
target_link_libraries(my_super_cool_application pthread)
endif()

וזה אומר שלפני ההפעלה של cmake רק צריך להגדיר עוד משתנה סביבה BUILD_ANDROID=1. פשוט שמתי אותו ב־script שקישרתי בתחילת הפוסט ואני עושה לו source לפני הבנייה.

מצד שני, היישום שלי עבד על הפעם הראשונה שם (וזה עוד client server…). זה אומר שהסבה של יישום מ־amd64 אל arm32 עבדה חלק מצד האפליקציה והיו לי רק בעיות build system פשוטות (שלקחו לי כמעט שעתיים…). כן, גוגל עשו פאקים ב־NDK, אבל בגדול, מגניב :)

עוד משהו שלמדתי מחדש, כמה חשוב זה לעשות out of source builds. ככה אני יכול באותו זמן לבנות את היישום לשתי פלטפורמות שונות בקלות.

Share