2014年9月22日 星期一

當 Android 遇到 kjstar Z07-5

kjstar Z07-5 是福克斯最新拿到的小玩具 - 自拍棒,它非常 cool ,我們其實已經在一些電視節目中看過它了。

基本上,自拍棒一點都不神奇。神架的地方是它有一顆藍芽按鈕。這個按鈕可以趨動拍照功能。所以,大家不再需要像之前那樣,設定完自拍讀秒後,立刻拿起來擺姿勢。kjstar Z07-5 只要按下自拍鈕,立刻就拍照了。

但是,據福克斯的觀查,它的生產主要是來支援 iOS,而不是 Android。唉.......不過,沒關係,網路上已經很多人分享過,我們只需要把相機設定成 Volume Up/Down 拍照的模式,它還是支援的。可是,好景不常,並不是每台 Android 手機都支援。例如,福克斯使用的小米3就不支援。

然後,我們也會找到一些文章,他們會教大家改灌其它的 app ,或是直接灌 kjstar 的 app 就支援了。確實如此。不過,福克斯比較龜毛,福克斯喜歡使用原生的照相機體,或是自己喜歡的照相機軟體。所以,福克斯做做了一些研究。

首先,福克斯把 kjstar Z07-5 與 mac 電腦連線。果然,按下按鈕後,它被轉成 Volume Up 的按鍵。由於,硬體鍵盤的設計中,有一個 scancode 與 keycode 的對應表,這看似很複雜,其實簡單說就是,一個翻譯表,用來翻譯實際上鍵盤上的按鈕與電腦應用程式接收到的按鈕。如果,大家有 mac 電腦,當連上一個新的鍵盤後,mac 會請大家按下 右邊 shift 左邊的的鍵與左邊 shift 右邊的鍵。這個行為就是用來搜尋這個對應表。當然, Android 也有一模一樣的機制。

所以,福克斯就灌了一個鍵碼的顯示軟體,發現這個藍芽按鈕會送出 scancode 88 與 28 的按鍵。其中 28 只有 keyup 沒有 keydown。這個很明顯是用來 hack 某些 Android 手機。接著就需要看 keycode,在沒有對應的情況下會被對上 keycode 142 (scancode 88) 與 66 (scancode 28)。經由查表可以發現,keycode 142 是 KEYCODE_F12, 66 KEYCODE_CLEAR。這是什麼怪東西。但是,還是請大家注意,這個是沒有對應過的情況,對應過後會有不一樣的結果.



不過,沒關係,福克斯剛才說了,keycode 是有對應表的。我們只需要把它改成 Volume Up,我們一樣還是可以用音量鍵來拍照的。所以福克斯找了一下,發現在 Play Store 上有一個  app 叫:Apple Wireless Keyboard Keymap



安裝之後,我們需要做下面的動作:

  1. 進入系統設定頁
  2. 語言及輸入設定
  3. 點擊『實體鍵盤 kjstar』
  4. 點擊『設定鍵盤配置』
  5. 找到『 English (US) Apple Wireless Keyboard』 (有些人會顯示為英文(US) ...)
  6. 啟用『 English (US) Apple Wireless Keyboard』


這樣一來,我們就成功地把這個按鈕模擬成 Apple 的那隻很貴的鍵盤。接著,我們再按一下那顆藍芽按鈕,我們會看到 keycode 被改成 24 (KEYCODE_VOLUME_UP) 跟 66 (KEYCODE_CLEAR) 了。由於,Volume Up 有完整的 Key Down/Up 的事件,所以它的運作會很穩定。致於那個 66 就先別理它了。

最後,福克斯有跟其它朋友借他們的手機來連線試試。但是,發現 HTC 的相機因為太高級了,所以沒有支援 Volume Up/Down 拍照。所以還是不能用。不過,沒關係,致少廣大的 Android 使用者可以用這個方式來拍照了。



2014年9月10日 星期三

WikiCards App - Vosie 專案

WikiCards 是福克斯最近加入的一個新的專案。我們主要的目標運用 Wikipedia 的內容,建立一個 crowdsourcing 的語言學習應用程式。當然,目前還算是非常初期的階段,所以,很多功能都還欠缺。

一個比較特別之處在於,WikiCards 是一個 Open Source 專案,它的目標不是以賺錢為主,所有與它有關的程式碼,都可以在 Vosie 的 GitHub 帳號中找到。它主要是一個前期 app,好讓我們可以測試另一個更偉大的專案ー協助看不見或不方便看的人們聽到網路上的內容。目前,WikiCards 只支援語言學習功能,未來,我們會加入發音、錄音、及錄音發享功能。

我們可以透過這個網址來下載 WikiCards[1],而它的原始碼可以在 GitHub 中找到。如果大家使用上遇到什麼問題或是建議,可以在 Vosie 的 mantis [3]上開 bug。

[1] WikiCards 下載網址:  https://play.google.com/store/apps/details?id=org.vosie.wikicards
[2] WikiCards 原始碼: https://github.com/vosie/wikicards
[3] WikiCards 的 issue tracking: http://vosie.org/mantis/

2014年9月9日 星期二

行車記錄器的未來

老實說,最近福克斯的行車記錄器壞掉了。所以,福克斯進行一系列的 survey。後來發現,行車記錄器目前已經到了一個白熱化的狀態。但是,與其它裝置連線依然不足。

我們可以從市面發現,一般的行車記錄器大概都要個 2000 以上,超低價的那種我們就不比較了。比對目前最便宜的 android 手機,它們的價格並沒有太大的差別。所以,福克斯相信,未來像這種中低價的消費型商品,一定也會是以 android 或 Firefox OS 為主。



2014年6月22日 星期日

Samsung Galaxy 7.7 昇級 4.4

其實 XDA 上的 4.4 一直都存在,只是有一個比較嚴重的畫面動畫的問題,所以福克斯並沒有寫出來如何昇級 4.4。最近,發現 XDA 上的 4.4 又有新版本,經過福克斯一試,感覺效果還不錯。

繼上次 Samsung Galaxy 7.7 昇級方法後,福克斯這次介紹一個比較簡單的方式,但是這個方式是用來刷第三方的 ROM 用的。

1. 安裝 heimdall

heimdall 是一個刷 Samsung Galaxy 機器的工具,當我們無法使用 odin 的時候,福克斯建議大家改用這個程式來完成它。不過,一般來說, odin 在 windows 的執行情況大體上並沒有什麼太大的問題。只不過,偶爾會出現抓不到機器而己。所以 heimdall 在 windows 的環境下,並沒有大受歡迎。

heimdall 有預先為每個平台編譯好的環境,所以我們只需要下載對應的版本就可以了:








下載完,就單純的按下一步、下一步就可以搞定了。

2. 下載 recovery image

那可以在這個網址下載 Odin Flashable Tar 的檔案:http://www.teamw.in/project/twrp2/108。不過,要記得,請依照自己的機型下載,如 3g 的 P6800、 WIFI 的 P6810。

下載完成後,請先解壓縮,並確認有 out/target/product/p6800/recovery.img 的檔案。

3. 下載 ROM

福 克斯這次使用的是 OMNI 的 ROM,它的下載網址在:http://forum.xda-developers.com/showthread.php?t=2535734。建議下載最新版本。下載完成後,請把它放在外部的 sdcard。雖然放在內部儲存空間也沒差,但是我們在刷完後,通常會把資料給清空,到時,放在內部儲存空間的東西也會被清空了。

4. 進入 Recovery Mode 刷 ROM

Recovery mode 的方式是按下 volume up + power,當我們看到 Galaxy Tab 7.7 的字後,就可以放開了。接著,就是按下 Install 進行刷 ROM。選擇外部 sdcard,選到下載的檔案 (omni-4.4.3.xxxxx.zip)之後就可以了。別忘了像 iOS 解鎖一樣由左往右滑就能開始刷機了。完成後,我們一定要按一下 wipe cache/dalvik cache 的按鈕。




5. 安裝 Google Apps

相信大家認為,Google Apps 是一個很重要的東西。我們可以在 ROM 的下載網址中找到 gapps 的下載連結:

Or http://forum.xda-developers.com/show....php?t=2012857

下載後,請用一樣的方式 (step 4) 刷入,或是於刷入 ROM 的過程中,一次選兩個 zip 檔一次刷入。

全部完成後,大約要等 3 ~ 5 分鐘就能第一次進入 KitKat 的畫面囉。




6. 清除資料的方法

為什麼我們要清除資料?主要是因為有些程式跟 4.4 會有衝突。基本上,這種機會不大,但福克斯之前還是遇到了。所以,就教一下如何把資料清空。

首先,一樣進入 recovery mode。按下 Wipe 按鈕後,請選擇 Format Data,就像下面的圖片:




2014年5月14日 星期三

Kitkat 目前的狀況

俗語說:爽完了,還是要回歸現實的。

Kitkat 裝完真的很爽,不過,福克斯遇到之前儲存在裝置內的檔案全都不見了,像是導航王的圖資之類的。而且,最慘的是,看了剩餘空間後,這些檔其實還在,只是不知道被放到那邊去了。所以,大家在安裝之前,一定要記得把檔案做好備份。

由於之前有發生過類似的情況,所以福克斯知道...大致上檔案是在一個名叫 emulated 的資料夾中。找了找後,福克斯發現,檔案就在:

shell@kona3g:/mnt/shell/emulated $

眼尖的人應該會知道,這個資料夾下有一個叫 0 的資料夾,它就是 Kitkat 的內部儲存裝置的位置。所以,我們只需要把檔案搬進 0 就可以了。只是,目前福克斯還在搬當中。

另外,網路上有流傳,灌完之後,用 es file explorer 沒辨法把檔案寫到 microSD 中。這件事不知道大家還記不記得,之前在 3.0 的時候就發生過。所以,福克斯認為,這個應該很快就會被解決掉了。





Android Kitkat for Samsung Galaxy Note 8 (3G/WIFI)

終於.....

Samsung 終於推出 Kitkat for Samsung Galaxy Note 8 的官方 ROM 了。福克斯照例還是搶先安裝。如果大家也想試看看的話...可以照下面方式來完成:

1. 進到 Recovery mode 備份自己的 ROM
    如果大家還沒安裝過 Recovery ROM 的話,請照 http://foxsoftware.blogspot.tw/2014/02/samsung-galaxy-tab-77.html 的方式裝一下。或是直接使用原廠的 recovery (如果有的話)。

    進入 Recovery mode 的方法依然是 i. 關機, ii. 按下 Volume UP + Power。

    原本的 ROM 大約需要 3.4 G (視自己的使用情況而定),在備份時,請確定有足夠的空間哦。

2. 下載 ROM (非台灣 ROM)
     原廠的 ROM 可以在這個網址中找到: http://samsung-updates.com/details/27854/Galaxy_Note_8.0_3G/WIFI/GT-N5100/XEO/N5100XXDND8.html。下載完成後,檔案大小約 1.6G。

    雖然這個 ROM 不是台灣的 ROM,它是波蘭的。但是,台灣式的中文也是可以正常顯示的。

3. 備份 Odin 或是 heimdall 工具
    由於福克斯只剩下非 windows 的機器,所以,以下全是採用 heimdall 做示範。

4. 進入 Download mode
    進入 Download mode 是每次使用 Odin 或是 heimdall 前必做的事,其方法依然是:i. 關機, ii. Volume DOWN + Power

5. 偵測裝置
    在每次刷機的時候,我們要先確認與機器的連線是正常的,所以我們要執行以下指令:
» heimdall detect
Device detected

6. 解壓縮
    因為我們是使用 heimdall 工具,所以必須將 .zip 跟 .tar.md5 解開。.zip 是直接用 unzip 的方式就可以完成,而 .tar.md5 需要先把附檔名改成 .tar,就能使用 tar (Ubuntu 或 Mac 內建的工具) 把它給解開了。完成後,我們可以得到像下列的檔案清單:

» ls                  
boot.img     cache.img    hidden.img   modem.bin    param.bin    recovery.img sboot.bin    system.img   tz.img

7. 刷機
    刷機是一個風險是高的行為,所以要先確定機器的電量是夠的、電腦並沒有在執行任何會讓它當機的事情。確認完成後,就可以執行下面指令:

» heimdall flash --BOOT boot.img --CACHE cache.img --HIDDEN hidden.img --RADIO modem.bin --PARAM param.bin --BOOTLOADER sboot.bin --SYSTEM system.img --TZSW tz.img

請注意,由於福克斯很喜歡 TWRP 的 recovery rom,所以福克斯不把 recovery 給改掉。如果大家的機器沒有 recovery 的話,昇級一定會失敗哦。所以,如果要加刷 recovery 的話,可以改用下面的指令:
» heimdall flash --BOOT boot.img --CACHE cache.img --HIDDEN hidden.img --RADIO modem.bin --PARAM param.bin —RECOVERY recovery.img --BOOTLOADER sboot.bin --SYSTEM system.img --TZSW tz.img

接著就會看到下面的訊息(這是沒 recovery 的版本):
» heimdall flash --BOOT boot.img --CACHE cache.img --HIDDEN hidden.img --RADIO modem.bin --PARAM param.bin —RECOVERY recovery.img --BOOTLOADER sboot.bin --SYSTEM system.img --TZSW tz.img
Heimdall v1.4.0

Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...

Initialising protocol...
Protocol initialisation successful.

Beginning session...

Some devices may take up to 2 minutes to respond.
Please be patient!

Session begun.

Downloading device's PIT file...
PIT file download successful.

Uploading BOOT
100%
BOOT upload successful

Uploading CACHE
100%
CACHE upload successful

Uploading HIDDEN
100%
HIDDEN upload successful

Uploading RADIO
100%
RADIO upload successful

Uploading PARAM
100%
PARAM upload successful

Uploading BOOTLOADER
100%
BOOTLOADER upload successful

Uploading SYSTEM
100%
SYSTEM upload successful

Uploading TZSW
100%
TZSW upload successful

Ending session...
Rebooting device...
Releasing device interface...


8. 完成
刷好之後,它會先進到 recovery mode 進行快取的清除與程式的昇級,接著再開進 Android,進行常見的 app 最佳化。最後就會看到新版的 Samsung Galaxy Note 8 (所有的應用程式與設定都還在哦):









 

2014年2月12日 星期三

Revovery Mode 螢幕截圖工具

螢幕截圖一直是介紹 Android 刷機或是應用程式時的一個很重要的工具。但是,在 recovery mode 中也要產生截圖,這就是一件麻煩的事情了。
最近,福克斯想起,大多的 recovery mode 都有 root 權限。只要有 root 權限,截圖那會是什麼問題。所以,福克斯就 google 了一下相關的文章,發現已經 XDA 的神人做出好用的工具了。

這個工具是結合 fb2png 跟 adb 的工具。這裡的 fb 是指 framebuffer 不是 facebook。它的原理是將fb2png 放到機器中,透過 fb2png 將輸出到畫面上的記憶體直接抓出來,並壓縮成 png 檔,最後把檔案抓出來。不過,這個工具是將 windows 版本的 adb 打包起來。所以,福克斯做了一個多平臺的版本。

大家可以在這個 github 上得到目前的版本:


它的使用方式很簡單,就是:
  1. 下載程式
  2. 進入 Recovery Mode (一般是 volume up + power)
  3. 接上 USB
  4. 執行 "screenshot_run_me.sh" 或 "screenshot_run_me.bat"
  5. 在資料夾中找到截圖
但是要注意的一點是,這個程式目前只支援第三方的 recovery mode,像原廠的 recovery mode 因為沒有 root 權限,所以在執行 mount 或是 fb2png 時會發生錯誤哦。

以下就是福克斯前陣子刷入的 TWRP 的截圖: