Archive for the ‘android’ Category

Google Android 3.0 的 Market 對 Google Analytics 丟資料

Thursday, April 28th, 2011

又一個 Root 手機的好理由.

最近在看 logcat 時, 常常會瞄到這些訊息:

04-28 12:30:43.770: DEBUG/NetworkRequestUtil/ConstructEventRequestPath(2275): /__utm.gif?utmwv=4.5ma&utmn=1845718205&utmt=event&utme=5(details%3Fdoc%3Dcom.amazon.kindle*VIEW_ITEM*1743839399)&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963419.1303963501.42

04-28 12:30:43.800: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(2275): /__utm.gif?utmwv=4.5ma&utmn=1672526910&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DRELATED%26c%3D&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963419.1303963501.42

04-28 12:30:43.800: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(2275): /__utm.gif?utmwv=4.5ma&utmn=488885935&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DRELATED%26c%3D-1827484239&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963419.1303963501.42

04-28 12:30:43.800: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(2275): /__utm.gif?utmwv=4.5ma&utmn=1226858699&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DDETAILS%26c%3D1743839399&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963419.1303963501.42

04-28 12:30:43.800: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(2275): /__utm.gif?utmwv=4.5ma&utmn=564046613&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DRELATED%26c%3D&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963419.1303963501.42

04-28 12:30:43.800: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(2275): /__utm.gif?utmwv=4.5ma&utmn=951601809&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DRELATED%26c%3D-1827484239&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963419.1303963501.42

起初不以為意, 但經過一而再再而三 log 的 “洗腦”, 越看越發覺得有些 keyword 很眼熟, 而在安裝 AdFree 之後才恍然大悟:

04-28 12:35:43.090: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(3253): /__utm.gif?utmwv=4.5ma&utmn=1709128022&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DBROWSE%26c%3D1743839399&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963501.1303965303.43

04-28 12:35:43.150: WARN/googleanalytics(3253): Problem with socket or streams.

04-28 12:35:43.150: WARN/googleanalytics(3253): java.net.ConnectException: www.google-analytics.com/127.0.0.1:80 - Connection refused

04-28 12:35:43.150: WARN/googleanalytics(3253):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:211)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at java.net.Socket.connect(Socket.java:901)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.PipelinedRequester.maybeOpenConnection(Unknown Source)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.PipelinedRequester.addRequest(Unknown Source)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.NetworkDispatcher$DispatcherThread$AsyncDispatchTask.dispatchSomePendingEvents(Unknown Source)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.NetworkDispatcher$DispatcherThread$AsyncDispatchTask.run(Unknown Source)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at android.os.Handler.handleCallback(Handler.java:587)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at android.os.Handler.dispatchMessage(Handler.java:92)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at android.os.Looper.loop(Looper.java:126)

04-28 12:35:43.150: WARN/googleanalytics(3253):     at android.os.HandlerThread.run(HandlerThread.java:60)

04-28 12:35:53.110: DEBUG/NetworkRequestUtil/ConstructPageviewRequestPath(3253): /__utm.gif?utmwv=4.5ma&utmn=1709128022&utmcs=UTF-8&utmsr=1280x800&utmul=en-US&utmp=%2Fhttp%3A%2F%2Fandroid.clients.google.com%2Ffdfe%3Fe%3DBROWSE%26c%3D1743839399&utmac=UA-19761900-1&utmcc=__utma%3D999.1840870358.1303223573.1303963501.1303965303.43

04-28 12:35:53.110: WARN/googleanalytics(3253): Problem with socket or streams.

04-28 12:35:53.110: WARN/googleanalytics(3253): java.net.ConnectException: www.google-analytics.com/127.0.0.1:80 - Connection refused

04-28 12:35:53.110: WARN/googleanalytics(3253):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:211)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at java.net.Socket.connect(Socket.java:901)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.PipelinedRequester.maybeOpenConnection(Unknown Source)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.PipelinedRequester.addRequest(Unknown Source)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.NetworkDispatcher$DispatcherThread$AsyncDispatchTask.dispatchSomePendingEvents(Unknown Source)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at com.google.android.apps.analytics.NetworkDispatcher$DispatcherThread$AsyncDispatchTask.run(Unknown Source)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at android.os.Handler.handleCallback(Handler.java:587)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at android.os.Handler.dispatchMessage(Handler.java:92)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at android.os.Looper.loop(Looper.java:126)

04-28 12:35:53.110: WARN/googleanalytics(3253):     at android.os.HandlerThread.run(HandlerThread.java:60)

原來當你在使用 Android Market, 不管看過哪些程式, 安裝哪些軟體, 搜尋哪些遊戲, 這些動作通通都會回報給 Google .. 分析 (?), 也許拿來改善 Market 的設計, 又或者計算程式的排名.

不過我好不容易翻出 Android Market Terms of Service, 左看右看卻找不到會蒐集使用者資料的說明, 而印象中某 Google 工程師在介紹 Google Analytics for Mobile 時提到, 使用這個 API 一定得告知使用者, 最好還有個選項可以關閉資料的蒐集. (Software principles from Google Analytics API – Terms & Conditions) 但不知道是我眼殘, 還是這些說明及開關都埋在很深的 UI 裡面, 我怎麼也找不到他要我接受 ToS 的地方, 也找不到可以禁用 Google Analytics 的方法..

還好目前可以透過 Root 的方式使用 AdFree 把這類的連線 “關閉”, 雖然吃到飽的 3G 網路不會因為這點小封包受到影響, 但這種蒐集使用者習慣的方式讓人感到不是很舒服 (Android 2.3 之前的 Market 都沒這現象) 讓我 Root Android device 的理由再添上一筆 !

另一種 Root EEE Pad Transformer 的方法..

Saturday, April 23rd, 2011

果然, EEE Pad 的最新 OTA update 把 recovery 的簽名檢查開啟了, 所以如果你先前有 Root 過卻不小心安裝了更新檔案, EEE Pad 就失去了 Root 權限.

說巧不巧, 最近有個 GingerBreak 的 root 程式 release, 所以只要小小修改一下 source code 重新 compile, 便可得到能在 EEE Pad 上使用的 root 程式. 我花了點時間做成 Windows 上可執行的批次檔, 有興趣及需要得可以抓回自行研究.

警告: 執行該程式可能損壞您的 EEE Pad, 不保證不破壞保固, 出事 (EEE Pad 再起不能, 電腦爆炸, 女朋友分手或老婆紅杏出牆..) 自行負責, 程式僅供自我學習參考用 微笑

說明:

  1. 程式使用的平台為 Windows 7, 請先至官網下載  USB Driver.
  2. 執行過程需要插入 SD 卡
  3. 執行成功後請自行重開機

使用:

將 EEE Pad 上的 USB Debugging 開啟, 連接至電腦後安裝 USB Driver. 抓回程式 [http://www.multiupload.com/GE43AOTTY4] , 解開後透過 cmd 執行 EEE_Root 下的 RootMyTransformer.bat, 過了一會兒 (沒仔細算) 出現 “Done ! Transformer is waiting to take your orders !” 代表成功囉.

Android 防毒軟體試用

Monday, March 7th, 2011

自從 Android 的使用者越來越多之後, 惡意軟體也跟著入侵這塊淨土, 從今年開始就陸陸續續不少 Android Market 出現惡意軟體的報導. 有的是偽裝成可愛的小遊戲, 有的則是偽裝成工具軟體, 還有的是直接拿熱門的付費軟體重新包裝, 看準使用者不熟悉哪位才是正統開發商以及貪小便宜的心理, 植入木馬竊取使用者的資料. 雖說 Google 也都有注意, 不過速度上總是慢了一些, 對於手腳快的使用者來說, 這是不夠的. 軟體業者看好這塊大餅, 推出各式各樣的防護軟體, 除了基本的惡意軟體掃描, 各家業者對 Security 也抱持不同想法, 有的提供手機遺失時定位服務, 甚至可以遠端上鎖, 清除資料; 有的可以將程式上密碼, 有的可以為你找出掛載廣告的軟體..

不過這麼多應用程式, 到底哪一套比較適合自己呢 ? 小弟花了點時間試用幾套 focus 於 “掃描惡意軟體” 的免費程式, 在這邊跟大家分享, 希望對那些想要尋找合適防護軟體的朋友們有所幫助, 以下是試用的軟體清單:

有幾套軟體這次沒有介紹, 在這邊解釋一下:

(more…)

Thrutu – 強化通話功能的小工具

Saturday, March 5th, 2011

跟朋友會面時, 老是不知道對方的位置而拿著手機不斷來回走動找人嗎 ? 常常無法記住對方告訴你朋友的電話號碼 ? 總是苦於聊天時沒法第一時間看到真相圖 ? 讓 Thrutu 幫你解決這些小問題吧 ! 先看 VCR:

只要手機有連網功能 (最好是吃到飽服務) 安裝後註冊電話號碼即可使用, 通話時會偵測對方有無使用該服務, 如果有則在畫面上疊一個小選單, 透過選單使用者可以

  • 傳送目前所在位置的地圖
  • 傳送手機裡的圖片 (或透過相機)
  • 傳送聯絡人資訊 (vCard)
  • 讓對方手機 “震動”

未來還可能加上遊戲, 視訊, 旅遊規劃.. 等功能, 讓使用者可以很方便的在通話時執行這些服務, 不用在不同程式間來回切換. 可惜目前台灣的 market 還找不到 Thrutu, 我是透過 Market Access 切換到 T-mobile 的 market 才得以下載. 以下是程式執行畫面 :

(more…)

如何把玩最熱門的 Android 應用程式 ?

Sunday, November 14th, 2010

Android 的應用程式越來越多了, 雖然已經有不少網站專門介紹新奇有趣的軟體, 不過總是覺得沒有一個符合自身的胃口, 所以花了點時間找了些相關工具, 在這邊跟大家介紹一下.

我本身是屬於跟著鄉民一窩蜂的類型, 所以 AppBrainAppsfire 這種提供熱門 app 列表的機制就很合我的胃口. 前者是專門為 Android 設計, 提供 Web installer 介面, 只要稍作設定, 即可透過網頁點選喜愛的 app 透過網路傳送到手機安裝, 相當體貼的設計. 後者原本是做 iOS 應用程式的整理, 現在也跑來接手 Android 業務, 如果之後能將程式降價通知也做到手機端, 那肯定成為必裝應用之一. 現在如果想要知道 Android Market 上有哪些軟體調整過價格, 只能靠 Apps On Sale, 介面有些陽春, 更新速度也不算快, 但總是一個切入點.

如果覺得很窮 (?) 或是想要試用一些不算太便宜 (約特大杯星巴克咖啡價格) 的軟體, applanet 與 掌上應用匯 都可以幫你實現願望. 前者的來源老實說我也不太清楚, 軟體品質參差不齊, 搞不好有木馬也說不定, 所以說免錢的最貴不是沒道理. 後者是中國某家公司提供, 主要內容都是漢化軟體或本土軟體, 不過最近也多了不少免費正版程式, 使用速度上慢了些, 可有點耐心.

話說回來, 現在越來越多程式物美價廉了, 比如 3 美刀可以買到 Gameloft 不錯的遊戲, 其實很划算 ! 而且對於一些好用的工具程式, donate 兩三塊美金對開發者也是一種鼓勵, 何樂不為 ? :-)