2015/10/30

用 AppleScript 取得檔案路徑與資料夾路徑


今天在寫如何用 shell script 取得資料夾路徑名稱,發現在Mac OS 中可以用 Apple Script 寫 script。可以搭配 Automator 的「執行 Shell 工序指令」一起使用!


[顯示目前檔案路徑]
FilePath=$(osascript -e 'tell application "Finder" to set FolderPath to quoted form of posix path of (item 1 of (get selection) as text)');

echo $FilePath


[顯示目前視窗資料夾的路徑]
FolderPath=$(osascript -e 'tell application "Finder" to get the POSIX path of (target of front window as alias)');


echo $FolderPath

2015/10/27

更新、Recovery Mode與DFU Mode 回復



今天在處理一支升級 iOS 9.1 失敗的 iPhone 5s,對於使用 iTunes 更新及回復做個記錄。

手機狀態:沒完整備份,iOS 9.0.2 感覺頓頓的,繼續升級 iOS 9.1,結果升級到一半變成白底黑蘋果(白色 iPhone 5s 的關係)。


先說明 iTunes 更新與回復功能....


【更新】:
更新 iPhone 可能即可修復問題,這會保留您的設定和內容。



回復有兩種,分別是 Recovery mode 與 DFU mode,其中的差異只在開機時是否載入 iBoot。Recovery mode 在恢復與升級的時候會使用 iBoot。而DFU mode 則跳過 iBoot 讓使用者可以降級(重刷)目前的韌體,兩種回復的過程都會清除手機內的內容與設定


【Recovery mode 回復】:
回復模式是讓 iPhone 進行升級、回復時會使用的狀態,當系統有問題時可以使用手動的方式強制進入回復狀態,以便使用 iTunes 重刷韌體。

強制進入方式:
打開 iTunes,接上傳輸線,同時按著 Power 跟 Home 鍵,等畫面重啟看到蘋果logo 的畫面,先放開 Power 鍵,但 Home 鍵不要放開,直到 iTunes 跳出提示視窗。


▼ 電腦會抓到一台 Recovery Mode 的裝置。


▼ iTunes 會跳出提示視窗 (手機端畫面為要求連接iTunes的圖案)

▼ iTunes 畫面有「更新」及「回復iPhone」可選



【DFU Mode 回復】:
DFU (Device Firmware Upgrade) 模式像是工程模式,當進入 DFU mode 後,在DFU 模式時設備畫面都會在黑屏狀態,iTunes 會偵測到一台在回復模式中的 iPhone。

強制進入方式:
打開 iTunes,接上傳輸線,同時按著 Power 跟 Home 鍵,等到畫面黑掉後約 5 秒,先放開 Power 鍵, 但 Home 鍵不要放開,直到 iTunes 跳出偵測到一台 iPhone 在恢復模式的視窗出現。


▼ 電腦會抓到一台 Recovery Mode 的裝置。

▼  iTunes 會偵測到一台在回復模式中的 iPhone。(手機端畫面為黑屏)

▼  iTunes 畫面只「回復iPhone」可選



一開始想用更新修復看看,但似乎不可行,看到網路上一篇「How to fix the issue of iPhone stuck on Apple logo without losing data on your device!」,照著回復都一樣是卡在底下的畫面。




話說這時候手機的畫面都只有蘋果logo + 進度條,根本沒辦法回應 iTunes,最後只好進入 DFU 重刷了,還好 iCloud 還有備份到一點點東西,只能部分還原了~




最後想說的是,完整備份真的很重要,現在有空不妨就備份一下吧!!


2015/10/23

Ubuntu 15.10 + Apache 2.4.17 + HTTP/2.0

最近看到 Apache 2.4.17 釋出,內建支援 HTTP/2.0,於是就測試紀錄一下。

一開始用 Ubuntu 14.04 作,不過內建的 OpenSSL 版本是 1.0.1f,,還需要 TLS 的 ALPN ,
所以需要 OpenSSL 1.0.2 以後的版本。

後來用Ubuntu 15.10 作,因為內建 OpenSSL 版本已經是 1.0.2d了。


 參考 あすのかぜ 這裡的作法。


1. 先安裝 nghttp2

apt-get install make binutils autoconf automake autotools-dev libtool pkg-config \ 
zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev \ 
libjemalloc-dev cython python3.4-dev python-setuptools 

git clone https://github.com/tatsuhiro-t/nghttp2.git 
cd ./nghttp2 
autoreconf -i 
automake 
autoconf 

./configure 
make 
sudo make install 
sudo ldconfig

2. 下載並編譯 Apache 2.4.17

apt-get install git gcc g++ libpcre3-dev libcunit1-dev libev-dev libjansson-dev \
libjemalloc-dev cython make binutils autoconf automake autotools-dev libtool pkg-config \
zlib1g-dev libssl-dev libxml2-dev libevent-dev python3.4-dev libevent-openssl-2.0-5

wget http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.4.17.tar.gz
tar zxvf httpd-2.4.17.tar.gz

wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-1.5.2.tar.gz
tar zxvf apr-1.5.2.tar.gz
mv ./apr-1.5.2 ./httpd-2.4.17/srclib/apr

wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-util-1.5.4.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
mv ./apr-util-1.5.4 ./httpd-2.4.17/srclib/apr-util

cd ./httpd-2.4.17/
./configure --enable-http2
make
sudo make install

3. 設定
先設定 /usr/local/apache2/conf/httpd.conf 

#新增這一行,自訂主機名稱
ServerName myserver.com 

LoadModule ssl_module modules/mod_ssl.so     #取消註解
LoadModule http2_module modules/mod_http2.so #取消註解
Include conf/extra/httpd-ssl.conf            #取消註解

#新增
<IfModule http2_module>
    ProtocolsHonorOrder On
Protocols h2 http/1.1 # for http
    Protocols h2c http/1.1 #for https
</IfModule>

接著產生SSL驗證用的金鑰
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/apache2/conf/server.key -out /usr/local/apache2/conf/server.crt


再設定 /usr/local/apache2/conf/extra/httpd-ssl.conf

#SSLSessionCache        "shmcb:/usr/local/apache2/logs/ssl_scache(512000)" #註解這行

#新增驗證金鑰
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"

#修改,參考 How to h2 in apache
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK

SSLProtocol All -SSLv2 -SSLv3  # 修改

4. 啟動
/usr/local/apache2/bin/httpd 


5. 執行結果

[netstat]
netstat -ta |grep -e http -e https                                
            
tcp6       0      0 [::]:http               [::]:*                  LISTEN                   
tcp6       0      0 [::]:https              [::]:*                  LISTEN    

[用 nghttp 連線]
nghttp -uv http://<IP or Domain Name>

nghttp -uv http://<IP or Domain Name>


[用 Chrome 查看]
直接瀏覽

chrome://net-internals/#http2



2015/10/02

更新 Mac OS X 10.11 EI Capitan (酋長巨石)


蘋果在 2015/09/30 釋出了 Mac OS X 10.11 正式版的更新,代號為 EI Capitan。


OS X El Capitan 以美國優勝美地 (Yosemite) 國家公園中的著名地標為名 (酋長岩或酋長巨石),也算是 Yosemite (10.10)的改版,重點是可以免費升級,所以立馬就來升級一下。

記得升級前要完整備份!!


直接從 Mac 上的 App Store 裡下載即可更新。下載可能需要一段時間,就丟著慢慢下載吧。


下載完畢後會直接執行更新程式,按「繼續」

同意軟體許可協議,按「同意」。

再次確認已閱讀,按「同意」。

選擇要安裝的硬碟,這邊只有一顆,所以就直接點「安裝」。

如果在沒有接上電源的情況下,會跳出此視窗,建議還是接上電源再繼續比較安全,避免安裝到一半時沒電。

需要管理者身份,請輸入密碼。

接著是準備開始安裝

當一切就緒後,重開機後就會進入安裝畫面。


重開機後會跳出白底畫面,中間是蘋果的Logo與進度條,當全部完成後,進入系統後需要重新登入 Apple ID ,照著步驟走完就完成更新了。

2015/08/03

[文字記錄] 如何重刷 (重灌) 有越獄的 iOS


今天把手邊的 iPad mini 2 重刷到 iOS 8.4,因為這台有越獄(JB),所以也不能直接"回復"重灌,但之前有寫過「iOS 7.0.x 越獄後如何重刷 iOS 7.0.6 與再次越獄」,所以也就不重複寫太多,只用文字快速記錄過程。

1. 用 iTunes 進行完整備份(包含 App 備份)

2. 確認官方還沒關閉要重刷版本的 SHSH 認證,要如何確認 SHSH 認證是否已經關閉咧?可以透過這個網站查詢:http://api.ineal.me/tss/status

3. Google 搜尋並下載裝置相對應的 ipsw 檔。建議找原廠的韌體檔連結,別下載來路不明的檔案。

以 iPad mini 2 (Wi-Fi)為例,型號是A1489,ipsw 檔的連結是:
http://appldnld.apple.com/ios8.4/ipsw/031-25942-20150630-7A51923C-1B90-11E5-882F-9663BE268FF7/iPad4,4_8.4_12H143_Restore.ipsw

4. 讓裝置先進入 DFU 模式:同時按住裝置的 電源鍵 + Home鍵 約5秒,等白蘋果出現後放掉電源鍵,Home 鍵繼續按著,直到畫面出現連接 iTunes 的圖示。

5. 將裝置接上電腦,iTunes 會發現一台等待回復的裝置,按下「好」就準備進行回復。

6. 在 iTunes 裡,按住電腦鍵盤 Shift 再用滑鼠點擊「回復 iPhone (iPad)」。

7. 接著會跳出檔案選擇視窗,選擇剛剛下載的韌體檔案 (iPad4,4_8.4_12H143_Restore.ipsw)

8. 接著就會開始進行回復

9. 依照畫面指示,完成後按照裝置與電腦進行啟用,最後選擇「從 iTunes 備份回復」把資料還原就完成了~~

2015/07/31

iCash 2.0 電子發票載具歸戶

之前紀錄了一篇「電子發票整合服務平台 - 載具歸戶」,當初只歸戶了一張 iCash。

這個月的電子發票通知來了,才發現之前換了 7-11 的感應式 iCash 2.0 後,還沒有將這張卡片作歸戶。因為 iCash 2.0 都是感應式的,電腦上沒有讀卡裝置,所以不能直接在網站上作歸戶,要到 7-11 的 ibon 操作。



需準備:

  • 需先申請「財政部電子發票整合服務平台」會員帳戶 (連結)
  • 個人的自然人憑證卡
  • 欲歸戶的 iCash 2.0 感應卡


以下簡單紀錄一下 ibon 的操作過程:
(用手機在7-11拍的,螢幕反光太嚴重,照片模糊請見諒)

▼ 選擇 ibon 主畫面的左下角「生活服務」(電子發票)

▼ 選擇「電子發票」

▼ 進入「財政部電子發票整合服務平台」

▼ 選擇「載具(卡片)歸戶」

▼ 因為要先登入,所以需選擇「自然人憑證」

▼ 接著在螢幕下方的右邊插入「自然人憑證」的卡片

▼ 接著要輸入「憑證PIN碼」(預設是出生年月日)

▼  條款聲明畫面,按「同意」即可

▼ 接著會顯示個人「已歸戶」的載具,然後按「下一步」

▼ 選擇要歸戶的載具類別,先選「icash」

▼ 接著選要卡別,icash 1.0 就是要用插卡的,icash 2.0要用感應的,這邊我選「icash 2.0」。

▼ 在螢幕下方的感應區放上「icash 2.0」的卡片

▼ 感應完成後就會顯示載具資訊,最後按下「確定」就可以了,這樣這張 icash 就算完成歸戶囉~



2015/07/10

Apple iOS 9 與 OSX 10.11 EI Capitan 開放公測

Apple 昨天開放 iOS 9 及 OS X 10.11 給一般使用者公測,請留意公測版一樣還是測試版,所以可能會有很多問題及不相容的App無法使用,要升級安裝測試前請三思,升級前請先備份。

要使用測試版需要留意怎麼備份還原,新版(iOS 9)的備份可能無法還原到舊版(iOS 8)的裝置中,如果你不熟悉備份還原的操作,建議還是等到正式版釋出再升級吧!!

只要在下列的網站用 Apple ID 登入即可申請:
https://beta.apple.com/sp/betaprogram/


▼ 官方一樣建議要先備份。

▼ 註冊設備:在iPhone 上瀏覽 beta.apple.com/profile 網址,下載描述檔到裝置中,。

▼  接著 iPhone 中就會出現更新提示。

接著就來操作看看...
▼  下載描述檔後,會跳出此畫面,使用者要安裝此描述檔才可以看到更新。

▼ 描述檔的內容。

▼  聲明許可

▼ 上圖點擊「安裝」後,會再次確認是否要安裝。

▼ 安裝描述檔後,在 設定 > 一般 > 軟體更新,就會看到 iOS 9 Public Beta 1 了


再次提醒:
要使用測試版需要留意怎麼備份還原,新版(iOS 9)的備份可能無法還原到舊版(iOS 8)的裝置中,如果你不熟悉備份還原的操作,建議還是等到正式版釋出再升級吧!!

2015/07/01

小米插線板簡易開箱


最近朋友在淘寶買東西,順便幫忙買了一條小米插線板,一條只賣人民幣 49元(約NT$250元)。不過插頭使用上有些限制,底下會稍微說明一下。

▼ 簡單的包裝,白色外盒中間只有一個 mi 標誌。

▼ 規格,額定功率:2500W,額定電流:10A,額定電壓:250V~。 USB輸出 5V,三孔總輸出 3.1A (單孔最大2A)。

▼ 打開後內容物有插線板跟說明書,電源線用兩條橡皮筋固定住。
插座可以插中國常見的插頭:
A型:插頭有兩個平行的金屬片。 (台灣部分插頭可用)
C型:兩個直徑為4毫米的圓頭針狀插腳。
I型:由接地接頭及兩個扁平的載流接頭排列成倒V形狀。

▼ 小米插線板的插頭是I型的,所以需要另外買轉接頭。

▼ 可以到小北或是五金行買「世界各國萬用轉接插頭」來用。

▼ 接上轉接頭後插頭變成這樣

▼  USB  插座,中間間格夠開,不會擠在一起,三孔總輸出 3.1A (單孔最大2A)。

▼ 台灣常用的插頭有 A型 和 B型。其中台灣目前大部分的 A型插頭因為要區分中性線(N)與火線(L),所以兩個平行金屬片大小不一樣(一寬一窄),那是無法使用這個插線板的。要底下這種A型才可使用。

▼  A型插頭:
(圖片來源)

▼ 底下是台灣常用的帶接地的B型插頭,除非把接地腳(圓柱腳)折掉,才可以使用小米插線板。