כל הפוסטים של elcuco

שידרוג אל 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

חצי שנה עם האנדרויד – חלק 3 – cyanogenmod

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

ההפצה הזאת מבוססת על הקוד החופשי שגוגל משחררים עבור ה־Nexus one, שעברה התאמות מרובות ויש בימינו התקנות עבור רב מכשירי האנדרויד שקיימים בשוק. לא רק שמדובר בתוכנה חופשית אמיתית אלא שיש אנשים טובים שמתקנים אותה ומשפצים כל יום. המתכנתים של ההפצה הזאת גם מסבים את ההפצה אל מכשירים ישנים – זה אומר שגם מכשירים ישנים מאוד יכולים להריץ אנדרויד 2.3.7.

בין הדברים שהכי אהבתי בהפצה הזאת:

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

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

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

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

  3. יש בניות ליליות (ראה גם http://haharoni.wordpress.com/2011/11/01/leilit-02/ וגם http://haharoni.wordpress.com/2011/10/31/leilit/). אני השתמשתי בהן במשך כמה חודשים.

  4. ההפצה מאוד חסכונית בסוללה. השיא שלי היה 72 שעות באחת מהבניות הליליות הראשונות. כעת אני יכול להגיע ליותר מיממה שלמה (אם אני מכבה 3G בעבודה, שם זה טוחן סללה).

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

מצד שני, לא הכל דבש:

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

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

  3. חלק מהיישומים שבאים עם ה־ROM הזה פחות צבעוניים מאלו שמגיעות עם זה ה־ROM של Samsung למשל (היישום של המצלמה נוצץ וצבעוני, אין יישום לטיימר/סטופר אך יש אלטרנטיבות טובות ב־market).
  4. האם באמת יש אבא להפצה הזאת?” כשיש בעיות, אצל מי בדיוק תלונן? אני מניח שאת השאלה הזאת אפשר לשאול גם בהפצות GNU/Linux, אבל פה השאלה היא יותר מורכבת.

אני ממליץ בחום על ההפצה למי שיש לו מכשיר נתמך ויש לו גרסה יציבה. ומי שלא, ומוכן לעדכן את הגרסה בכל יום (תהליך פשוט מאוד אני הייתי עושה את זה תוך כדי שיחה עם אנשים) – שוב מומלץ. אני זוכר את הגרסה הראשונה שהתקנתי (בנייה מספר 13) את הבנייה הראשונה שבה ה־bluetooth הפסיק לעבוד (בנייה 37) כשהוא חזר לעבוד (בנייה 42), כש־sdcard החיצוני התחיל לעבוד (בערך 70), כשבעת הודעה המקשים החיצוניים התחילו להאיר (בערך 110, לא זוכר בדיוק).

כרגע אני משתמש בגרסה יציבה 7.1 במכשיר GalaxyS. בעלי GalaxyII – אין עוד גרסאות יציבות – אבל לפי דעתי הבניות הליליות יהיו מספיק טובות לשימוש יום יומי. שאר המכשירים – תסתכלו בווקי של האתר וברשימת המכשירים.

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

חצי שנה עם אנדרויד

זוכרים את התקופה שבה הינו קוראים פעם בשבוע על איזה עיתונאי שהיה מתקין לינוקס, משחק איתו יום יומיים, אולי שובע ומזה מסיק מסקנה שלינוקס שמיש? כל מה שחשבנו הוא “יא נקניק, את הבעיות האמיתיות עוד לא גילית… ואתה כבר מסיק מסקנות?”. אז הינה, אני משתמש בסלולרי שמפעיל לינוקס אנדרויד (ולא גנו/לינוקס) כחצי שנה. אני חושב שאני יודע מה המכשיר הזה עושה ולא עושה.

המכשיר שקניתי הוא Samsung Galaxy S והינה כמה נקודות מחשבה עליו:

  1. מבחינת חווית שימוש בתור מכשיר סלולרי, הוא לא משתווה לדור הזהב של נוקיה. המכשיר הקודם שלי היה E65 ובתור סלולרי היה יותר טוב. יותר קל להגיע לספר כתובות, לחייג למספר האחרון שחייג אליי, לפתוח אותו לשים על ספיקר כדי לענות לשיחה.
  2. המכשיר הגיע אליי עם האנדרויד 2.2 של פלאפון. המכשיר לא סוחב יום עבודה ללא הטענה, במיקרה הכי טוב 10-14 שעות, היו ימים שגם 6 שעות והסוללה הייתה נגמרת והמכשיר כבה.
  3. המכשיר הוא לא כולל תוכנה חופשית. כדי להשתמש בו צריך לפרוץ אותו בצורה דומה למכשירים של אפל. מבחינתי אין הבדל בין המוצרים הללו.
  4. החנות של אנדרויד מלאה. לפעמים בזבל… הממשק וובי המלא יותר נוח מהממשק שיש בסלולרי ונותן יותר אפשרויות. למשל: איך אני מחפש תוכנות חינמיות בלבד בסלולרי?
  5. המכשיר נועד כדי שגוגל יאספו עליכם מידע. ברגע שהלדקתם אותו הוא מתחבר לרשת וכל דבר שאתם עושים נרשם אצל האח הגדול.
  6. החיבור bluetooth שלו טיפה מעצבן. אני מחבר אותו למערכת באוטו כדי לשמע מוסיקה. אם אני מקבל שיחה ועונה, המכשיר לא ממשיך לנגן. כמו כן (לפעמים), ללחוץ על play ברדיו של האוטו לא מספיק ואני חייב לגעת בממשק של הסלולרי.
  7. החיוג הקולי לא עובד כלל. בנוקיה זה עבד אפילו בעברית.
  8. הצילצולים מעצבנים… ובכלל, למכשיר נראה כאילו אין “אישיות” של סמנסונג, אלא סתם אנדויד גנרי. למכשיר טלויזיה שלי יש צלילים אפיינים וממש “אישיות”. מוזר שלא השקיעו בזה כאן.
  9. בגדול העברית לא רעה, לא תמיד מיושרת ימינה, ויש בעיות בסימון טקסט, אבל סביר ושמיש. שוב, אצל נוקיה זה היה יותר טוב. וכנראה שב-wp7 המצב יהיה יותר טוב, בזה אני סומך על דוד סטיב.
  10. חסרים לי מקשי חומרה, המקשים של המסך מגע לא נותנים פידבק וקשה לי לתפעל את המכשיר מבלי להסתכל עליו (קראו שוב את 1). שוב, באופן מפתיע דוד סטיב דווקא בכיוון הנכון.
  11. החיבור של האזניות נראה “תקני” אבל הוא לא. אם תחברו את האזניות שבאם עם הסלולרי למכשיר אחר, תצתרכו לשחק עם המגעים כדי לשמוע בשתי האזנים. כמו כן, אם תחברו אזניות “רגילות” לשם לא תשמעו כמו שציפיתם. עבודה בעיניים..

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

Share Button