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

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

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

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

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

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

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

תזכורת:

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

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

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

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

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

Share Button

התקנה של 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 Button

טיפים לעבודה ב־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 Button

חצי שנה עם האנדרויד – חלק 2 – PilotX

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

אם רוצים ROM מקומי טוב, המקום היחיד לפנות אליו הוא ה-ROM של PilotX. בגדול מה שהבחור הזה עושה  זה לקחת את ה-ROM המקורי של סמסונג, ולשנות את האימא שלו. הוא מחליף קרנל לאחד יותר מהיר וחסכוני בסוללי, מוסיף root מותקן by default, מעיף את רב הזבל הפרסומי של סמסונג (יש מלא תוכנות מיותרות שלהם ב-ROM, אבל הוא משאיר את תוכנת השידרוג שלהם כדי שתוכלו להתקין דברים בעצמכם), מוסיף ערכות נושא חדשות, מוסיף נעילת מסכים, מוסיף תוכנות שימושיות ועוד. והכי חשוב – הוא מוסיף תיקונים של עברית לכל מקום שהוא רק יכול. למעשה – אני כמעט בטוח שה-ROM שלו הוא זה שתומך בעברית הכי טוב. אני לא יכול לאמת את זה כי אין לי כמה מכשירים לבדוק, אבל זה בהחלט מרגיש ככה. הוא באמת משקיע לטובת המשתמש ה”עברי הממוצע”.

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

אני לא משתמש יותר ב-ROM-ים שלו. לא שהם לא טובים, אלא שהם לא התאימו לי מכמה סיבות:

  1. האתר הרשמי ובו הוראות ההתקנה הוא בפורום שלא מאפשר גישה ללא רישום.
  2. הורדה של ה-ROM אפשרית רק אם אתם עושים Like ב-Facebook.
  3. אין הסבר מדוייק של מה יש ב-ROM, לדוגמה “ועוד דברים רבים” (ראה סעיף אחרון).
  4. יש מלא זבל ב-ROM. יותר מדי מסכי נעילה, יותר מדי ערכות נושא.
  5. זה מלא בתוכנות שיענו אמורות לעזור לך, אבל לא. למשל: תוכנות לשיפור השמע, תוכנות ל-lag fix ועוד דברים שאפילו לא הבנתי מה הם עושים.
  6. התמיכה מתבצעת בעזרת פורום ואשכול בודד באתר אחר. זה אומר שאם יש בעייה אני צריך להגיע לאשכול ההוא, לדפדף חמש עמודים אחורה ולקרא למי יש את אותן בעיות שיש לי.
  7.  זאת לא תוכנה חופשית. אני לא יכול ללמוד ממנה כלום – אלא רק להשתמש בה. לא רק זה, אין הסברים איך שינו את המערכת (לא “מה”, אלא הדרך).

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

Share Button