Quantcast
Channel: 應用教學 – Hiraku Dev
Viewing all 94 articles
Browse latest View live

在 Windows 10 下安裝最新版的 PRIME 中州韻輸入法方法

$
0
0

因為個人習慣用拼音輸入法打字,平時在用 Mac 時,覺得內建的輸入法就很好用了,但是在 Windows 上,內建的拼音輸入法卻有諸多不便,導致必須尋找第三方輸入法來使用。而以往我最常使用的就是「RIME」輸入引擎的「小狼毫」了。

但可惜的是,由於 Windows 下 TSF 模式跟桌面模式之間的輸入法相容性問題,導致「小狼毫」其實在 Windows 10 下會時常出錯,甚至造成系統問題。為了解決這些錯誤,原作者也將 Windows 下的引擎改用跟新酷音輸入法一樣的「PIME」了。不過,由於輸入法本身還在持續移植,所以許多設定都必須更土炮的來解決,因此,這篇文章要教大家的就是,如何在 Windows 10 上面安裝 PRIME 之後,再各種土炮解決問題。

 

首先,在這邊可以找到最新版本的 「PRIME」安裝檔,記得安裝 v1.1.0 以上的版本。

https://github.com/osfans/PRIME/releases

 

安裝時,記得選擇安裝「簡體中文」底下「Rime」選項(預設應該就是開啟的了),安裝完成之後,打開這個檔案:

C:\Program Files (x86)\PIME\python\input_methods\rime\ime.json

會看到如下類似的內容

{
    "name":"中州韻輸入法 (PIME)",
    "version": "0.1",
    "guid": "xxxxxxx",
    "locale": "zh-Hans-CN",
    "fallbackLocale": "zh-CN",
    "icon": "icon.ico",
    "win8_icon": "",
    "moduleName": "rime_ime",
    "serviceName": "RimeTextService"
}

注意到 “locale” 跟 “fallbackLocale”,如果你是台灣使用者的話,把 locale 改成 “zh-Hant-TW”,把 fallbackLocale 改成 “zh_TW”,這是因為原本的輸入法是安裝在「簡體中文」之下,這樣對於台灣的使用者來說,在切換上會比較麻煩,還會被 Windows 要求安裝簡體中文語系檔才能設定輸入法。

接著,用管理員權限開啟命令提示字元,分別輸入四個指令:

regsvr32 /u "C:\Program Files (X86)\PIME\x86\PIMETextService.dll"
regsvr32 /u "C:\Program Files (X86)\PIME\x64\PIMETextService.dll"
regsvr32 "C:\Program Files (X86)\PIME\x86\PIMETextService.dll"
regsvr32 "C:\Program Files (X86)\PIME\x64\PIMETextService.dll"

這樣我們就成功註冊中州韻輸入法到台灣的語系選項裡面了。

 

接著,到「控制台/語言和區域/變更輸入法/進階設定」裡面,開啟常駐語言列選項。

 

可以看到「重新部署」之類的功能全部在這邊,而在「打開文件夾/用戶文件夾」可以修改設定。目前我自己測試結果貌似不支援 .custom 的設定檔,所以以下範例會直接改原始檔案設定。

 

舉例來說,把 default.yaml 裡面的 menu 改成

menu:
  page_size: 9

這樣一次可以顯示九個候選字。

 

而改掉 PIME.yaml 底下的

style:
  color_scheme: lost_temple
  ...
  horizontal: true

則可以改變顏色,並且把候選字換成橫向的。

 

結束設定之後,選擇「重新部署」,然後確定設定都 OK 的話,回到「控制台/語言和區域/變更輸入法/進階設定」,把語言列常駐關掉,就完成了!

 

這篇文章 在 Windows 10 下安裝最新版的 PRIME 中州韻輸入法方法 最早出現於 Hiraku Dev


nginx 指定路徑不轉址的方法

$
0
0

如題,因為我平常有用 SSL 加密,所以預設都會自動轉址為 https 開頭的 URL。但因為某個服務不能用 https,所以要指定該路徑不轉 https。

因為那個路徑雖然不轉 https,但是又用了 proxypass,所以一般網路上的教學是不適用的。

正確方法如下:

location ~ ^((?!somewhere).)*$ {
     rewrite ^/(.*)$ https://domain.com/$1 permanent;
}

這樣除了有 “somewhere” 這個關鍵字之外的 URL 都會自動加 https。

這篇文章 nginx 指定路徑不轉址的方法 最早出現於 Hiraku Dev

如何降級到 iTunes 12.6

$
0
0

因為 iTunes 12.7 幾乎把所有 iOS Apps 相關功能都刪除了,所以降級到 12.6 之後,我們就可以恢復這些功能了。

 

更新:

不需要用下面的方法了,直接安裝 iTunes 12.6.3 降級,之後還原資料庫即可。

參考:http://iphone4.tw/forums/showthread.php?t=220571

 

Windows 降級:

iTunes 12.6.2

刪除 iTunes 12.7 ,重新安裝即可。

舊版 iTunes 資料庫不知道放在哪裡,請自行 Google 解決XD。

Mac 降級:

iTunes 12.6.2

Pacifist

 

下載 iTunes DMG 之後,用 Pacifist 開啟 .pkg 安裝檔。找到 iTunes 之後,拖曳覆蓋 /Applications/iTunes.app,當問你是否覆蓋時,選擇「Replace」。

 

之後找到 ~/Music/iTunes/Previous iTunes Libraries/ ,裡面有舊版的 iTunes 資料庫,把他改名為 iTunes Library.itl,放回  ~/Music/iTunes/ 覆蓋新版資料庫就好了。

 

9/17 更新:

就算降級了之後,Mac 還是會自動更新 iTunes 12.7,所以我們要欺騙 iTunes 版本,只要下載這個壓縮檔,之後把 /Applications/iTunes.app/Contents/ 裡面兩個 .plist 覆蓋過去就好了。

 

9/19 更新:

如果開啟防火牆且欺騙 iTunes 版本,則會每次使用 iTunes 都要確認連線,如果你有用防火牆的話可能要考慮是否就不要偽裝成舊版了。

9/30 更新:

有開發者帳號的可以跳過防火牆確認的問題:

sudo codesign -f -s "YOUR DEV ID" /Applications/iTunes.app/Contents/MacOS/iTunes

 

這篇文章 如何降級到 iTunes 12.6 最早出現於 Hiraku Dev

在 Mac 手動安裝 USB 網卡驅動的方法(以 WLI-UC-G300HP 為例)

$
0
0

Mac 的主機無論是 MacBook、iMac 還是 Mac mini 都有內建無線網路卡,我不知道為啥你會有手動安裝網卡的需求。但總之我就是寫了教學。

 

手邊有一張 WLI-UC-G300HP 的 USB 網卡,就用這個當例子好了。

首先,先確定你的網卡的使用晶片,我是在這邊搜尋到的:

https://wikidevi.com/wiki/Buffalo_WLI-UC-G300HP

嗯…是早就停產的 RT2870 ,不過不管,網路上搜尋一下看有沒有 RT2870 的驅動程式,於是找到了這個

https://www.tonymacx86.com/threads/guide-installation-of-usb-wireless-antenna-chipset-rt2870-rt3070-in-mac-os-x-10-11-x-el-capitan.183175/

從附件下載 BearExtender,按照 1、2、3 來安裝,每次都要重新開機,但是當安裝完 3 的時候先不要重開,先複製 [crayon-5a41e35957f73422762647-i/] 到桌面,然後插入 USB 網卡,看 System Info,選擇你的 USB 網卡的選項。注意到 Product ID 跟 Vender ID,因為這邊是 16 進位所以我們要換算成 10 進位。

所以 0x0411 = 1041,0x01a8 = 424,這邊記起來換算後的結果。

 

接著打開桌面的 [crayon-5a41e35957f82490969509-i/] 的內容,找到 /Contents/Info.plist,把他打開。看到 [crayon-5a41e35957f87318087154-i/] 裡面有幾個 Buffalo 開頭的裝置,分別是 Buffalo-2870-1、Buffalo-2870-2、Buffalo-2870-3、Buffalo-3070,一個一個展開之後,發現裡面的 idProduct 欄位沒有一個是 424,所以我們自己做一個。只要把隨便一個 Buffalo 的欄位複製,然後改名為 Buffalo-2870-4,之後把 idProduct、idVendor 改成剛剛我們換算好的值就好了。

 

最後,用 Easykext Utility 安裝我們修改好的 kext 驅動,再重新開機即可,以後每次重新開機之後,系統都會開啟一個 BearExtension 的網卡工具程式,再用那個工具選擇無線網路即可。(不需要使用系統內建的網路工具)。啊不過講這麼多,Mac 主機都有內建網卡,到底為啥會需要這種教學呢。 Read More

這篇文章 在 Mac 手動安裝 USB 網卡驅動的方法(以 WLI-UC-G300HP 為例) 最早出現於 Hiraku Dev

我用的 Mac 軟體

$
0
0

基本上是看到 Goston 的 [MAC] 初入手 Mac 的軟體選擇建議 – 2017 版 之後才想寫的,但是我比較懶,能不附圖就不附圖。文章裡面只會有我「目前有在用」或者「之前用過覺得不錯」的軟體,如果你看到有相同性質的兩個軟體出現,那大概就是因為我同時都會用吧。太常見的軟體就不會介紹,例如 Dropbox 、Firefox 這種每個人都知道的,就會跳過。下面會依照粗略的分類來介紹 Apps,所以可以跳著直接看你有興趣的部分。

另外,因為 Java 寫的程式 GUI 通常很醜,Electron 包的程式通常又肥又慢,所以基本上我會儘量不用這些東西寫出來的 Apps,如果列表當中有的話,應該是速度上還 OK,或者沒有其他替代方案所以只好妥協這樣。

 

生產力工具

提升工作效率,或者減少一些重複性動作的軟體

  • Divvy:雙螢幕或超寬螢幕必備,讓你快速設定視窗大小與位置,同時寫 code 並搜尋資料時超好用。
  • Fantastical:我覺得算很貴的行事曆工具,但是光是快速切換行事曆組合,還有快速新增項目這兩個功能就很值得了。
  • Kaleidoscope:對檔案做比對的工具,也可以對整個資料夾分析,有點貴。
  • MacDown:免費的 Markdown 寫作工具。
  • Parallels Desktop:知名的虛擬機軟體,雖然每年一次升級都要付費有點煩,但是實際上可以不升級用兩年,因為開發商都會支援隔一年的系統,只是會少一些功能(第三年就要靠運氣了)
  • PopClip:在你的 Mac 選取文字的時候,出現類似 iOS 選字那樣的彈出功能,並且還可以安裝多種外掛。
  • Sketch:設計 SVG、向量圖等的常見工具,Adobe Illustrator 以外的最佳選擇。
  • Skitch:Evernote 出的截圖軟體,可以簡單加標註,還有打馬賽克(這很重要)。另外,我沒有在用任何同步功能。
  • Spark:超好用的郵件管理軟體,跟 AirMail 各有千秋。對我來說最大缺點是如果郵件規則讓郵件自動跳過收件夾(但不設為已讀),則這時候很難看到通知。(AirMail 在這點的設計比較好)
  • TextExpander:可以將一些常用字加入,設定為簡碼。這樣一來,輸入簡碼就可以快速輸出文字了。另外支援 Shell script 跟 Apple Script 執行。在 6.0 版之後改成了全訂閱制,很討厭,還好我有買舊版。

 

資訊安全

密碼保護、網路安全連線等軟體

  • 1Password:最有名的密碼管理工具,除了登入資訊之外,還有支援常見的 OTP 認證,另外我也用它來儲存一堆購買的軟體授權碼。
  • MacID:用 iPhone 上的 Touch ID 來解鎖 Mac(或者你也可以讓手機靠近自動解鎖)。
  • ShadowsocksX-NG:Shadowsocks 的連線工具,前提是你要有自己的伺服器。
  • VPN Unlimited:提供各國的 VPN 來使用,雖然速度沒有很快,但是跨國看個區域限定的 YouTube 還是可以的。

 

開發工具

無論什麼程式語言、前端後端的工具都在這個分類

  • BBEdit:類似 Sublime Text 之類的編輯器,我只是拿來開 Binary Plist ,還有當文字檔不是 Unicode 而亂碼的時候來轉檔用而已。
  • Charles:網路測試工具,可以觀看 HTTP 傳送資料、SSL Proxy 等等。免費版本有每次使用 30 分鐘的限制,但對我來說是夠用了。
  • CodeKit:前端開發用,可以自動編譯 SCSS、SASS 等,並且在本機預覽,自從 Fire.app 停止開發之後的最佳選擇。
  • ColorPicker:我自己寫的簡單取色工具。
  • Cyberduck:老牌 FTP 軟體,我通常用來連一些本地的 FTP / SFTP (例如 iPhone 越獄後的系統目錄)
  • Dash:可以下載各種語言、Framework 的文件,並且在本地搜尋、觀看
  • Fork:漂亮的 git 管理工具,但是我覺得 SourceTree 比較好用些(雖然比較醜)
  • ForkLift:檔案管理、FTP/SFTP 管理工具,我連到外部伺服器基本上都用這個。2.0 版目前在 Mac AppStore 免費。
  • Hex Fiend:看 binary hex 用。
  • Hopper Disassembler:便宜好用的反編譯工具,分析 Objective-C 基本上沒啥問題,但是其他平台跟語言還是 IDA Pro 好。(但是 IDA Pro 超級貴)
  • iOS Console:看 iOS 的系統記錄用的,但是 iOS 10 之後好像有點問題,不知道修正沒。
  • iTerm:替代內建 Terminal。
  • MachOView:分析 MachO 的小工具。
  • PaintCode:把畫出來的圖變成 Objective-C、Swift 程式碼。
  • Reveal:分析 iOS UI 的工具,雖然我都不是正常的來使用它…
  • Sequel Pro:MySQL 資料庫工具,免費、好用。
  • SourceTree:好用、免費的 git 管理工具,可以綁定 bitbucket 或者 GitHub 帳號來管理這兩個服務的 repo。
  • Sublime Text:著名的編輯器,不需要多解釋了吧。
  • ThemeEngine:開啟 .car,抓取內部圖片用的工具。
  • Visual Studio Code:微軟出的編輯器,我覺得還是 Sublime Text 跑起來比較快,但是 VS Code 完全免費。

 

系統工具

各種幫助系統更順暢、使用更方便或自動化

  • AJA System Test Lite:跑硬碟測速用的工具,但大部分都用 Blackmagic 比較多。
  • Bartender:整理 Mac 的狀態列的工具,可以隱藏不常用的項目,強烈推薦。
  • BetterZip:強大的壓縮檔管理工具,但是解一些對一般使用者沒那麼常見的格式通常都會爛掉,例如 .deb。
  • Blackmagic Disk Speed Test:測硬碟速度用的,一般人剛買 Mac 的時候都會跑一下測速來炫耀。
  • CandyBar:自從 10.8 之後系統層級早就爛掉不能用了,我只是拿來管理圖示,還有把圖片轉成 icns 用而已。偶爾拿來改資料夾的圖示。
  • Carbon Copy Cloner:強大的自動複製工具,我專門讓他幫我在接上某顆硬碟時,自動備份最新資料到 RAID 中,並且把舊的版本放到另外一個地方以供還原之用。
  • CleanMyMac:有名的 Mac 清理垃圾工具,每次都可以清出一堆 cache 檔。
  • coconutBattery:看電池循環跟健康度用的。
  • DaisyDisk:分析系統各個目錄的使用空間,可以讓使用者清出一大堆其他軟體搜尋不到的垃圾內容,但是很依賴使用者經驗,僅推薦對 Mac 各個目錄熟悉用途的進階使用者使用。
  • DriveDx:隨時監控 Mac 硬碟健康狀態的工具,避免硬碟快壞掉了但是你沒發現的慘劇。
  • EasyDMG:把資料夾變成 DMG 的小工具。
  • EasyFind:用土炮的方式(不是用 Spotlight)搜尋檔案以及檔案內容的工具,通常用來找一些系統或者 App 底層目錄用。
  • Entropy:我覺得比 BetterZip 好,只是一直沒更新(但也可以用,沒啥問題)
  • iStat Menus:顯示 CPU、GPU、RAM、硬碟、網路…各種狀態於 Mac 狀態列上。
  • Karabiner:鍵盤 remap 工具,對於非 Apple 鍵盤來說必備。
  • Launchpad Manager:可以輸出、輸入 Launchpad 的圖示位置與資料夾設定,整理 Launchpad 很好用。
  • mySIMBL:安裝 SIMBL 外掛的工具,現有的 SIMBL 外掛其實不多,通常只是我拿來 hook Mac App 用。
  • OnyX:清理系統快取、改變一些隱藏的系統設定用。
  • Pacifist:解開 .pkg 檔案專用,可以撈出安裝包裡面的內容。
  • The Unarchiver:免費的解壓縮工具,通常一些用 BetterZip 解不開的東西丟進來都可以解。
  • TimeTracker:分析 TimeMachine 每次備份了哪些內容,有多大。幫助你在備份選項排除一些每次都在變化,但是沒有什麼用的內容。(例如郵件的 cache)
  • TotalFinder:讓 Finder 的 tab 可以整理得更好,以及可以左右雙視窗互相拖曳,還有開啟「剪下」功能等。跟 Xtrafinder 比的最大優勢是 TotalFinder 在 render 視窗的時候不會有一條白線。
  • Xslimmer:八成是用 lipo 來對 mach-O 減肥的工具。它可以透過刪除不需要的語系檔,以及不會使用到的 CPU 執行檔(例如在 Intel 64bit 的系統中,PPC 跟 Intel 32bit 的執行檔是可以刪除的),來對 App 減肥。目前已經停止開發。

 

網路應用

網路服務、SNS 連線等應用軟體

  • CloudApp:一個讓你分享小檔案(但不是同步)的服務。如果覺得 Dropbox 放一堆東西太亂,或者佔空間,就丟在這邊就好了。
  • Goofy:把 Facebook Messenger 網站包成一個 App 來用,跟 Messenger 一樣,基本上我是哪個突然爛掉就換用另一個。
  • Messenger:同上,Goofy 爛掉的時候我就用這個。
  • Nally:老牌的 BBS 應用程式,類似的選擇還有 Welly。
  • 迅雷:Windows 上著名的下載工具。看在它只是一個 App,並沒有安裝其他東西的情況下,應該還算安全。只是最新版本多了一堆垃圾 plugins,可以搜尋一下教學把它清乾淨。

 

影音媒體

影音轉檔、播放,影片剪輯等軟體

  • HandBrake:影片轉檔用,雖然免費但是比一堆平常要付費,突然辦什麼鬼活動免費促銷的爛軟體好多了。
  • MPlayerX:之前會綁 MacKeeper,現在好像沒有了,相容性最強,介面最美觀的播放器之一。
  • OBS:開直播用,可以支援各大直播平台。
  • Reflector:把 iOS 裝置的畫面投影到 Mac 中,對於 Demo 來說非常好用。
  • ScreenFlow:Mac 螢幕錄影與編輯軟體,網路上大部分的 Mac 影片教學幾乎都會用到這個軟體。另外我也把它當作簡易的剪輯軟體來用。
  • Shazam:聽歌辨識曲目名稱的老牌軟體。
  • VLC:基本上是 MPlayerX 開不了的檔案我才會用 VLC 試試。
  • VOX:我把他設為預設音樂播放器,因為有時候我們下載的音樂檔案不想丟進去 iTunes 資料庫,所以用 VOX 開,可以直接聽,有需要或者喜歡再丟進去 iTunes。
  • XLD:最好用的音樂轉檔工具,此外如果你有 CD 的話,也推薦用這個來抓音軌,正確性會比 iTunes 高很多。

 

手機管理

大部分是 iOS 的檔案、備份管理

  • Android File Transfer:把檔案丟到 Android 手機裡面的工具,雖然用 Android 的都不是真果粉
  • iFunbox:管理 iPhone 檔案用的。
  • iMazing:除了管理 iPhone 檔案之外,也有備份 iPhone 資料以及還原的功能,功能方面比 iFunbox 多很多。
  • Impactor:重簽名 IPA 並安裝到手機用。

 

生活風格

跟生活有關的,但是大部分工具手機上都有,所以這分類很少

  • Adze:管理 GPX 路徑的工具,可以新增、刪除路徑與節點等。
  • Money Pro:好用的記帳軟體,可以透過 iCloud 跟 iPhone 同步,也有 Watch App。

  Read More

這篇文章 我用的 Mac 軟體 最早出現於 Hiraku Dev

修正 macOS 10.13.3 Nvidia driver lag 問題

$
0
0

簡單來說就是用 10.13.2 的 driver 蓋過去,但是 nvidia 預設不讓我們在 10.13.3 裝舊版的 driver。

所以我們用一個別人寫好的 shell 來幫忙。

https://github.com/vulgo/webdriver.sh

雖然有 shell script 可以用,但是我會建議大家用 homebrew 安裝,以讓指令可以保存在系統中,原因只是避免如果出問題無法開機的話,可以直接 single mode 下面執行 webdriver.sh 移除目前的驅動程式而已。

要安裝舊版的 driver 很簡單,請這樣下:

brew tap vulgo/repo
brew install webdriver.sh
sudo webdriver -cu https://images.nvidia.com/mac/pkg/378/WebDriver-378.10.10.10.25.106.pkg
sudo webdriver -m

之後重開機就可以了。

如果遇到問題導致無法開機,請先進入 single mode,強制移除 webdriver

/sbin/mount -uw /
sudo webdriver -r

一樣重新開機就好了

這篇文章 修正 macOS 10.13.3 Nvidia driver lag 問題 最早出現於 Hiraku Dev

在 Electra 下讓 Gogoro 正常執行

$
0
0

iOS 11 的 Electra JB 釋出有一段時間了,但是身為 Gogoro 車主,一直有一個困擾,就是 Electra 一旦啟用後,會造成 Gogoro App 在開啟時就 crash。

根據一些研究之後,發現是因為 

[NSBundle mainBundle]
 在 TweakInject 的時候,可能當時 Gogoro 的 App 尚未初始化完畢,導致會出錯。

因此,我寫了一個 Loader 來替換原本的 TweakInjector,故意用延遲的方式來讓 Gogoro App 初始化之後再載入原本的 Injector,就可以了。

#import <dlfcn.h>
#import <objc/runtime.h>

__attribute__ ((constructor))
static void ctor(void) {
    @autoreleasepool {   
        void *dl = dlopen([@"/usr/lib/TweakInject2.dylib" UTF8String], RTLD_LAZY | RTLD_GLOBAL);
        if (dl == NULL) {
            NSLog(@"Injection failed: '%s'", dlerror());
        }
    }
}

 

不會編譯沒關係,有檔案可以直接下載:

https://github.com/hirakujira/TweakInjector_delay/releases

 

使用方法也很簡單,進去 SSH 之後,找到 /usr/lib/TweakInject.dylib,改名為 TweakInject2.dylib,然後把下載的修正檔放在 /usr/lib/TweakInject.dylib(等於放在原本的位置) 即可。需要注意的是,一旦 TweakInject 在 Cydia 有更新,在更新之後必須重複上面步驟一次,這樣就可以了。

這篇文章 在 Electra 下讓 Gogoro 正常執行 最早出現於 Hiraku Dev

智障 Linode 亂改我的網卡介面之解法

$
0
0

今天發現我的 Cydia 連不上,進去 linode 後台一看,靠腰已經斷線三四天了。

環境:Ubuntu 16.04 LTS,Linode JP 2

Linode 即使連不上 SSH,還是可以用他們的 lish 服務進去 terminal,所以以下操作都是在 lish 做的

先測試看看是不是 nginx 掛掉,輸入

service nginx restart

發現無法重開,於是看看是不是 networking 掛掉,一樣輸入

service networking restart

結果還是顯示 failed,哇完蛋了

用 ifconfig 看一下,顯示

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:25411 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25411 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000

GG,網卡介面怎麼不見啦!!想說是不是我系統設定壞了,所以用了各種 Backup Restore,甚至重開了一個 linode 來測

最後發現是 linode 智障又給我亂改設定動到網卡介面,如果不想動 grub 之類的,就用以下方法解決:

 

解決方法 1:

先列出所有網卡

ifconfig -a | grep Link

出現範例如下:

dummy0    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
enp0s3    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
erspan0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00
gre0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
gretap0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00
ip6_vti0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
ip6gre0   Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
ip6tnl0   Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
ip_vti0   Link encap:IPIP Tunnel  HWaddr
lo        Link encap:Local Loopback
sit0      Link encap:IPv6-in-IPv4
teql0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
tunl0     Link encap:IPIP Tunnel  HWaddr

可以看到有 HWaddr 的只有  dummy0 跟  enp0s3,而  dummy 顧名思義就是假的XD

所以修改 /etc/network/interfaces,把裡面介面(原本應該是 eth0)換成 enp0s3 ,再重開機就好了

另外,如果 Linode Dashboard 那邊有設定 Auto-configure Networking 的話,要關掉,不然重開機會被還原成 eth0

此外如果有 iptables 之類的也要檢查裡面有沒有網卡設定。

 

解決方法 2:

打開 

/etc/udev/rules.d/70-persistent-net.rules
 ,看到裡面的設定,當中的 MAC address 改為正確的值(ifconfig -a 取得網卡 MAC),再重開機就好了

這篇文章 智障 Linode 亂改我的網卡介面之解法 最早出現於 Hiraku Dev


解決 ASUS AC-56 連線超慢問題

$
0
0

因為有一台 Windows 桌機需要網卡,所以花了錢買了 ASUS AC-56 這張天線看起來還滿長的網卡。

沒想到用上去之後 5GHz Wifi 下載速度只有 2Mbps。

 

於是確認了驅動是 ASUS 官方網站提供的最新版,但下載還是一樣慢,倒是上傳有 20Mbps。用 2.4GHz Wifi 的話倒是上下載都 20Mbps,仔細看一下,802.11ac 需要用 5GHz 啊,所以意思就是說我用 802.11n 還比 802.11ac 快,哪有這種事情?

找半天發現原來是低能廠商驅動有 bug,網卡裡面的實際晶片是 realtek 的,人家 realtek 都丟出修正檔了 ASUS 卻沒在網站更新,啊誰會知道你無線網卡裡面晶片是哪家的,還找出來是驅動問題?

總之下載新的驅動:

http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=2&PNid=21&PFid=64&Level=5&Conn=4&DownTypeID=3&GetDown=false

再重開機就好了,重開之後上下載速度都達到 70Mbps (家中網路雙向 100M)

不知道多少人為了這種軟體問題跑去退貨,ASUS 工程師/客服加油好嗎。

  Read More

這篇文章 解決 ASUS AC-56 連線超慢問題 最早出現於 Hiraku Dev

我用的 Visual Studio Code 擴充功能

$
0
0

雖然 Visual Studio Code 是用我最討厭的 Electron 寫的,但是執行速度比 Atom 快很多,然後 Sublime 要錢,所以現在我的主流編輯器就成了 Visual Studio Code。這篇文章會整理一下我用到的擴充功能,供各位參考。

目前我平常開發的環境是在 Mac 上面,透過遠端開發的方式,在 Linux 上面寫 C++ (大部分)跟 Python(比較少),所以介紹的擴充功能幾乎不會包含前端會使用到的,這點可能跟滿多人不一樣。

  • Ayu:漂亮美觀的主題,我用 Mirage 色系,不過 Ayu 附帶的 icon 不喜歡,所以我用了別的 icon,下面介紹。
  • Beautify:在寫前端時讓 code style 保持一致與美觀的工具
  • Bracket Pair Colorizer:對程式碼中的括弧上色,讓你可以輕易看出括弧對應的開頭與結尾
  • C++ Intellisense:可以快速查看 C++ reference,自動完成…等實用功能
  • CMake:cmake 語法支援上色以及自動完成
  • Excel Viewer:在文字編輯器上面看表格實在很痛苦,因為每個欄位長度不一樣,對個位置可以對半天,這個外掛可以讓你簡單預覽表單(我是拿來看 csv 用的)
  • favorites:在大型專案中,有時候我們只是常常要在幾個檔案之間切換,卻要點資料夾半天或者輸入搜尋,這個外掛可以建立一個常用的檔案列表方便快速切換
  • Fira Code:這其實是一個支援連字的字體,會自動把「!=」轉換顯示為「≠」、「>=」轉換為「≥」之類(但是依然是佔據兩個字元,所以不影響編譯或執行)
  • GitLens:超強大的 git 附註工具,可以看每一行 code 是從哪一個 commit 來的,以及作者是誰。可以切換兩個不同的 commit 比對檔案變化… 功能太多我根本還沒摸透。
  • Material Icon Theme:支援超多檔案種類,還對特殊名稱的資料夾做特別 icon 的主題,我用這個 icon 主題替換 Ayu 內建的。
  • Settings Sync:透過私有的 GitHub gist 檔案來同步設定,可以跨機器之間讓你的 Visual Studio Code 設定、主題與擴充套件同步

以上是我目前用到(而且我還記得他功能在幹嘛)的擴充套件,未來有發現其他有用的套件會再補充 Read More

這篇文章 我用的 Visual Studio Code 擴充功能 最早出現於 Hiraku Dev

批次掃描及抓取 SHSH2

$
0
0

因為我裝置很多,所以每次出新版 iOS 抓 SHSH2 都要抓半天,就算用 1conan 也要複製貼上 ECID 很久,乾脆自己寫一個 script 自動化。

使用之前,請先開一個資料夾,我們就取名叫 SHSH2 好了,然後去 1conan 先去取得你的 SHSH2 檔案,並解壓縮資料夾,放到 SHSH2 底下。之後下載 TSSChecker,一樣放到 SHSH2 底下。

接著複製下面的很醜的 python script,存檔在 SHSH2 底下執行就可以了。

#!/usr/local/bin/python3

import os
import subprocess
import sys

def get_devices():
    device_dict = {}

    for path in os.listdir('.'):
        if path != 'backup' and os.path.isdir(path):
            board = ''
            device_type = ''
            found = False
            version_paths = os.listdir(path)
            version_paths.sort(reverse=True)
            for version_path in version_paths:
                if os.path.isdir(path + '/' + version_path):
                    for nonce_path in os.listdir(path + '/' + version_path):
                        if nonce_path == 'noapnonce':
                            for shsh_path in os.listdir(path + '/' + version_path + '/' + nonce_path):
                                if shsh_path.endswith('.shsh2'):
                                    if shsh_path.split('_')[2].endswith('ap') or shsh_path.split('_')[2].endswith('AP'):
                                        device_type = shsh_path.split('_')[1]
                                        board = shsh_path.split('_')[2]
                                        found = True
                                        break;
                    if found == True:
                        break
                if found == True:
                        break

            device_type += '_' + board
            ecid = path.split('-')[1]
            device_dict[ecid] = device_type

    return device_dict


def main():
    devices = get_devices()

    for ecid in devices:
        model = devices[ecid].split('_')[0]
        if model.split(',')[0] == 'iPhone5':
            continue
        board = devices[ecid].split('_')[1]
        version = sys.argv[1]
        if len(sys.argv) == 3:
            version += '-' + sys.argv[2]
        save_path = './' + model + '-' + ecid + '/' + version + '/noapnonce'
        if not os.path.exists(save_path):
            os.makedirs(save_path)

        cmd = './tsschecker_v212' + ' -d ' + model + ' -e ' + ecid + ' -s ' +  ' --save-path ' + save_path + ' --boardconfig ' + board + ' -i ' + sys.argv[1]
        if len(sys.argv) == 3:
            cmd += ' --buildid ' + sys.argv[2]
        print(cmd)
        subprocess.call(cmd, shell=True)


if __name__ == '__main__':
    main()

 

執行方式:

./run.py 版本號 build號(若有需要)

例如./run.py 11.4./run.py 11.4 15F79

 

原理:

因為 1conan 抓下來的資料夾裡面有包含裝置主機板、型號、ECID 等資訊,所以這個 script 就是掃一掃這些資訊然後重新湊出下載 SHSH2 的指令。

 

注意:

  1. apnonce 不會幫你設定,是隨機的
  2. 依照個人需求可能需要修改 tsschecker 執行檔名稱
  3. 依照個人需求記得擋掉不存 SHSH 的裝置(例如我擋掉了 iPhone 5,因為不支援 iOS 11 以上)
  4. 我 code 很醜不要笑我。

這篇文章 批次掃描及抓取 SHSH2 最早出現於 Hiraku Dev

合併 iOS 的「健康」來源裝置

$
0
0

有一天我無意間發現 iOS 的「健康」app 會把過去每次配對的 Apple Watch 當作一個新的資料來源,然後強迫症就發作了,因為覺得那些「來源」在那邊一排看起來很醜…所以就研究了方法把他們全部合併。

▼ 健康的「來源」超多,每個項目裡面都會有一部分的資料

 

首先,你必須要越獄,或者有方法可以替換「已加密」的 iTunes 備份檔案才有辦法修改。這是因為「健康」的資料庫必須要透過加密的 iTunes 備份才可以備份成功。由於我是有辦法越獄的,所以就沒有測試 iTunes 備份,修改資料庫之後再還原這個方法。

透過進入越獄後的系統,可以找到 /User/Library/Health 這個路徑,先手動把裡面所有的東西都複製到電腦上,並且再複製一份作為安全備份用(避免改壞)。接著下載「DB Browser for SQLite」,不同系統平台都有,所以不必擔心你用的是 Windows 或 Mac。

下載之後開啟備份資料庫中的 healthdb_secure.sqlite,選擇 Browse Data,然後在 Table 選擇 objects,再拉到最下面,看最常出現的兩個 provenance 號碼。

▼ 從這邊我們可以看到「最下面」最常出現的兩個號碼分別是 277 跟 261

 

接著切換 tabledata_provenance 這個資料表,看 ROWID277261origin_product_type 為何。其中一個應該會是 iPhone,另外一個是 Apple Watch。然後記住對應數字是哪一個裝置。接著在過濾欄位輸入 iPhone 或 Watch,先過濾出所有的 iPhone 或者 Apple Watch ROWID。要注意的是也要檢查 source_version 欄位是否為標準的 iOS 版本或者 Apple Watch 版本號碼,如果不是的話就不要。

▼ 透過過濾關鍵字方式找到所有符合的 ROWID

 

過濾完畢之後,紀錄所有搜尋結果的 ROWID,你可以直接對那一欄全選,然後複製貼上到記事本之類的。記得 iPhone 跟 Apple Watch 都要做。接著請找看看有沒有 UnknownDevice 的欄位。如果有的話,看他的 sync_provenance 裡面的數字,然後看看有沒有其他欄位是有同樣數字,但是是有裝置名稱的,如果有的話,那這個 UnknownDevice 就是等於有顯示的那個裝置名稱。

重頭戲來了,接下來我們要大量修改資料庫,在前面的步驟中,我們準備了一些 ID,分別是:

  • 最新的 iPhone ROWID
  • 最新的 Apple Watch ROWID
  • 過去的 iPhone ROWID
  • 過去的 Apple Watch ROWID

Execute SQL 那邊輸入

[crayon-5b13a273cde95910239208/]

如果你舊的 ID 有超多,就要全部輸入,然後 Apple Watch 的跟 iPhone 的指令要分別下,或者如果你不介意的話全部混在一起變成同一個 ID 也是可以…輸入之後執行 SQL,再存檔,丟回去 iPhone 原本的路徑裡面。為了讓資料庫快取清除,要刪掉 iPhone 的。Health 資料夾裡面所有檔名結尾是 shmwal 的檔案。為了確保資料庫權限,建議把檔案權限設為 777,這樣雖然不是最正確的權限,但至少不會造成權限不足無法寫入資料的問題。

丟回檔案之後,Respring 或者重開機,再開啟「健康」App,看到來源那邊,會發現雖然裝置都還在,但是除了我們保留的一台 iPhone 跟一台 Apple Watch 之外,其他裝置點進去的資料都是空的,這時候我們再按「刪除所有的 xxxx」的資料,把他從列表移除就好了。

如果資料庫出錯的話,直接丟我們備份的檔案回去蓋掉,然後一樣清除快取跟重新開機,設定權限就好了。 Read More

這篇文章 合併 iOS 的「健康」來源裝置 最早出現於 Hiraku Dev

HyperDock beta 過期限制破解

$
0
0

HyperDock 是一個加強 Dock 功能以及顯示的好用 Mac 軟體,不過作者近年來更新頻繁程度太低,支援 macOS 10.13 的版本放在 beta 裡面,然後這個 beta 還會每半年就過期,即使已經購買也一樣…所以乾脆花兩分鐘破解他的到期限制,就可以繼續用了。

這次破解並不會解除原本需要付費或者試用的限制,僅僅是破解作者沒更新導致 beta 到期的問題。

首先,先去下載最新的 beta 版軟體,由於下載地址在官網找不到(官網只有正式版),所以我在這邊提供:HyperDock-1.7.0.51.dmg。下載掛載 dmg 之後,把 HyperDock.prefpane 複製到桌面上,然後右鍵開啟套件內容,找到 HyperDock.prefpane/Contents/MacOS/HyperDock

▼ 接著用 HexFiend 打開,搜尋 EC F9 0F 5B,替換為 FF FF FF 7F,存檔

因為修改過的 HyperDock 會簽名失敗,所以我們要移除簽名

codesign --remove-signature ~/Desktop/HyperDock.prefpane/Contents/MacOS/HyperDock,如果你電腦有設定禁止沒簽名的 App 執行,要先關閉再安裝,之後打開在桌面的 HyperDock.prefpane  安裝就可以了。 Read More

這篇文章 HyperDock beta 過期限制破解 最早出現於 Hiraku Dev

Cydia Eraser error 1252 解決方法

$
0
0

今天想要用 Cydia Eraser 重置我的 iPhone 7 iOS 10.1.1,結果遇到了

[crayon-5b40825d5c2f6255366028/]

 

解決方法:

JB 之後 SSH 進去 iPhone,輸入

[crayon-5b40825d5c2ff374438001/]

之後再用 Cydia Eraser 即可

  Read More

這篇文章 Cydia Eraser error 1252 解決方法 最早出現於 Hiraku Dev

使用 Let’s Encrypt Wildcard SSL 憑證

$
0
0

原本我就有使用 Let’s Encrypt 的 SSL 憑證,而前陣子他們推出了 Wildcard 憑證,於是最近就更新上去了。

Wildcard 憑證最重要的就是,你網域下的所有 subdomain 都可以直接使用該憑證,不用像以前那樣需要每新增一個 subdomain,就要重簽一次憑證給新增的 subdomain。

要升級上去很簡單,首先下載 certbot-auto

wget https://dl.eff.org/certbot-auto

接著,檢查 /etc/letsencrypt 下面如果有任何檔案名稱是以你的網域命名的,就全部刪掉,如果不刪掉的話新增的證書會叫做像是 yourdomain.com-0001 這樣的名稱,因為我不喜歡這樣有後綴的名稱所以就把舊的檔案都刪除了。

接下來輸入指令:

./certbot-auto certonly --manual -d "*.yourdomain.com" -d "yourdomain.com" --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

注意要新增有星號跟沒星號的兩種,否則連到沒有 subdomain 的 yourdomain.com 會找不到證書。

再來,會要求你新增 TXT 紀錄:

Please deploy a DNS TXT record under the name
_acme-challenge.hiraku.tw with the following value:

jpdT9AhZ1GzCfTnWWb53slKWL2xGsDKbhA76U6OuCOU

Before continuing, verify the record is deployed.

就按照顯示的內容,到你的伺服器上面新增 TXT 紀錄,因為我們剛剛輸入了兩種 domain,所以這邊需要新增兩次。(按下 Enter 之後會顯示另外一個的 token)。由於 DNS 紀錄新增需要等待一些時間,所以我們先把 TTS 設定為最短的時間(5 分鐘)

接著再到這個網站查詢你的 TXT 紀錄,直到穩定出現對應 token 的值為止(注意要兩個 token 都出現),這時候才回到 certbot-auto 裡面按確定。

由於我是升級舊的證書,所以 nginx 設定就不需要調整,直接用舊的就好了,但是要重新開啟 web server 以生效(service nginx restart)

最後,設定 crontab,讓 certbot-auto renew 這個指令每天固定時間執行就好了。

這篇文章 使用 Let’s Encrypt Wildcard SSL 憑證 最早出現於 Hiraku Dev


「無法啟用 iCloud 音樂資料庫」修正方式

$
0
0

最近遇到了這個問題,搞了兩天終於解決了,在這邊分享一下解法。

前兩天我要在 iPhone 上面開啟 iCloud 音樂資料庫的時候,出現了「無法啟用 iCloud 音樂資料庫」的錯誤,網路上查詢到的文章幾乎都是叫你登出登入、重灌系統等,比較進階的有一個教學是叫你進去 iPhone 檔案目錄刪除資料庫,當然我都試過了無效,所以才會有這篇文。

首先,先確認問題來源為何,我做了幾件事:

  1. 用 Mac 上面的 iTunes 重複開啟、關閉 iCloud 音樂資料庫 → 正常
  2. 在 Mac 上面上傳、更新 iCloud 音樂資料庫 → 正常
  3. 先刪除所有在 iPhone 上面的歌,再開啟 iCloud 音樂資料庫 → 正常
  4. 先用 iTunes 同步幾首歌(20~50 左右),再於 iPhone 開啟 iCloud 音樂資料庫 → 開啟成功率大概 5% ~ 10%
  5. 同步回所有歌曲,再開啟 iPhone 的 iCloud 音樂資料庫 → 失敗
  6. 拿了舊的,目前有開啟 iCloud 音樂資料庫,且有同步 iTunes 歌曲的手機,關閉 iCloud 資料庫後再打開 → 失敗

於是判定問題在於從 iTunes 同步歌曲之後,再打開 iCloud 音樂資料庫會造成錯誤。由於我最近升級了 Mojave,iTunes 版本從 12.6.5 升級到 12.9,於是懷疑兇手就是 iTunes 升級資料庫時壞了。

解決方法:從 Time Machine 裡面找 ~/Music/iTunes 裡面有 iTunes Library Extras.itdb、iTunes Library Genius.itdb、iTunes Library.itl、iTunes Library.xml、iTunes Music Library.xml 這幾個檔案,把現在的資料庫用備份蓋掉,之後在 iTunes 端上傳一次 iCloud 音樂資料庫,手機這邊就可以同步成功了。 Read More

這篇文章 「無法啟用 iCloud 音樂資料庫」修正方式 最早出現於 Hiraku Dev

掃描機錯誤 -9923 解決辦法

$
0
0

因為 macOS 10.14 Mojave 會抓不到我在 macOS 10.13 以下可以用 Bonjour 直接連線並自動安裝驅動程式的印表機,研究兩天無果,於是我直接買了一個新的。然後新的一開機馬上就可以辨識到 AirPrint 了,真棒。

不過用了一天發現掃描器部分出現問題,會一直顯示 -9923 的錯誤

 

爬了一下文,發現很簡單,去關閉機器的 IPv6 功能就好了,如何操作請自行研究你的印表機。

  Read More

這篇文章 掃描機錯誤 -9923 解決辦法 最早出現於 Hiraku Dev

Porting Kit / Wine 中文顯示問題修正

$
0
0

最近在 MacBook Pro 上面玩起了世紀帝國 2,由於不想讓我的虛擬機環境太複雜(我的虛擬機基本上來說作為 Sandbox 用,每次開完幾乎都會恢復快照為乾淨狀態),所以就用了 Porting kit 的方式來執行遊戲,詳細教學可以參考這篇

然而後來發現了一個問題,就是 Steam 跟世紀帝國遊戲本身,在英文的 macOS 環境下,會無法正確顯示中文,只會出現一堆方框,而在中文的 macOS 環境下又可以正常顯示。不過由於 macOS 10.14 之後把一堆中文用語弄的很奇怪,像是「iCloud 雲碟」之類的,所以在我堅持使用英文語系的情況下,就要想辦法修正 Wine 無法正確顯示中文的問題了。

爬文之後發現了解決方法,不過由於我們是用正體中文,加上字體名稱不同,所以我改了一下方式。首先,要確定有透過 Porting Kit 安裝「文泉驛字型」(詳細教學參考上面連結提到的安裝世紀帝國方法),然後從 Porting Kit 的 More → Wineskin Tools → Registry Editor,開啟登錄檔編輯程式。

接著下載我修改的登錄檔,按照下圖,選擇「Import Registry File…」之後開啟下載的檔案,完成之後到 「HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink」檢查裡面的值是不是如圖片中顯示的值一樣。

 

由於不明原因,登錄檔有可能會沒有儲存成功,因此建議關閉登錄檔編輯程式之後再重複上面動作兩三次以確定修改成功。如正確修改成功,則在 Steam 本身的介面那邊就可以正常顯示中文了。 Read More

這篇文章 Porting Kit / Wine 中文顯示問題修正 最早出現於 Hiraku Dev

手動安裝 iOS 模擬器到 Xcode

$
0
0

由於 Xcode 下載速度慢,或者新版 Xcode 無法直接下載太舊的 iOS 模擬器等問題,我們有時候會需要手動安裝 iOS 模擬器檔案。這篇教學將會簡單說明操作方式。

首先,我們先去下載想要的 iOS 模擬器版本的 dmg,這個網站裡面有很多版本的列表,可以選擇你想要的版本來下載。

網路上的教學大部分都是教你丟到 Xcode 下載路徑的 cache 裡面方便快速安裝,但是對於如果想要下載舊版本模擬器的情況來說,由於 Xcode 裡面就沒有舊版本模擬器的選項了,所以用這些教學教的方式,是無法自動幫你裝好檔案的。舉例來說,我想在 Xcode 10.3 裡面安裝 iOS 8.4 的模擬器,但 Xcode 10.3 裡面可以選的最低版本為 10.3.1 的模擬器,根本無法自動安裝 iOS 8.4。

所以,我們從上面的連結中,先手動下載 iOS 8.4 模擬器的 dmg,並且開啟後發現他是一個 pkg 安裝檔。這時候請不要安裝,先去下載 Pacifist 這個軟體,之後把 .pkg 檔案用 Pacifist 開啟。

接著,我們要建立放置檔案的資料夾,以這個範例來說,路徑是 /Library/Developer/CoreSimulator/Profiles/Runtimes/,在這裡面我們隨便建立一個資料夾,名稱隨便取名。之後在 Pacifist 裡面,選擇「Contents」資料夾,然後選擇「Extract To…」解壓縮到我們剛剛建立的資料夾當中。如果詢問是否使用管理員權限,則選擇「是」。

解壓縮完成之後,把我們剛剛亂取名的資料夾改名為「iOS 8.4.simruntime」,之後重開 Xcode 跟 iOS Simulator,這樣就可以了!

Read More

這篇文章 手動安裝 iOS 模擬器到 Xcode 最早出現於 Hiraku Dev

若在 Apple Pay 使用 Suica,以後換手機前必定要先移除

$
0
0

在粉絲專頁貼過一次了,為了讓更多人看到,再重貼在部落格。

有用 Suica 的一定要注意,由於 iOS 13 之後支援在 Apple Wallet 裡面直接開一張 Suica 空卡,而且可以開好幾張空卡,所以:

你一定要在舊手機移除 Suica 之後再到新手機裡面新增卡片!!!

只有先移除,再重新加入,才是真正的還原舊卡片資料,否則有可能會變成開一張額度為零的空卡,並重新要求你儲值!

這樣會很麻煩,因為你實際上 iCloud 會有兩張卡,而如果要真正永久移除某一張 Suica (並退掉餘額)需要日本當地的銀行帳戶…

如果你舊手機刷機洗掉,或者賣了,在新手機的 「iCloud 設定」裡面找你舊的那一台裝置,按「移除卡片」再試試。

其他交通卡我不知道可不可以直接開,但無論如何卡片就是全部移除掉之後再新增,才不會出問題。

Read More

這篇文章 若在 Apple Pay 使用 Suica,以後換手機前必定要先移除 最早出現於 Hiraku Dev

Viewing all 94 articles
Browse latest View live