Google
 

星期一, 7月 31, 2017

Android系統擋廣告的簡單方式 - Adguard

之前有提到過擋廣告的方式, 但對一般使用者而言實在有點麻煩.
有朋友在問, 有沒有更簡單的方式?

巿面上有一些擋廣告軟體, 試過一陣子後我覺得Adguard是最簡單方便的方式.

你可以在Adguard的官網上直接下載安裝. 因為是擋廣告, 等於也是擋了Google的財路, 所以當然不可能在Play商店上找到這樣的東西. (換句話說, 你能在Play商店上找到的擋廣告軟體效果一定很不怎麼樣.)

這個軟體使用很簡單, 只有一個開關, 把它開起來(enabled)後就可以過濾廣告了.




Adguard號稱連APP裡的廣告都可以擋掉, 原理其實和前幾篇提到的原理一樣, 它利用DNS filtering把連接到廣告伺服器的request擋掉, 所以就不會出現廣告的內容.

實際試用後發現, 有一些廣告還是沒有擋到, 但個人對它的效果已經很滿意了, 所以就買了一年的license繼續用. 白金版除了擋廣告之外, 還可以擋malware, spyware.



像這個測速照相Draft版的APP, 每次一開一定都有廣告.


把Adguard開起來後, 再開出測速照相Draft版就變這樣.


擋掉廣告以後, 網頁變得乾淨多了, 瀏覽速度也變快. 有些廣告會變成這樣就剩一個X. 還是要動手把X點掉, 但沒看到廣告就覺得神清氣爽!



有興趣的朋友可以上Adguard的官網下載試試看.
試用結束後回到普通版還是可以免費用, 但若要更好的保護可以考慮買白金版.


星期日, 4月 09, 2017

Chrome的色彩管理問題

Chrome應該算是巿佔率數一數二的瀏覽器了, 僅管它有一個大缺點: 記憶體吃很兇, 但因為瀏覽速度快(用空間換取時間), 所以雖不滿意但還可以接受。(雖然也有一些讓Chrome省記憶體的撇步, 但這不在本篇的討論之內, 有興趣的朋友可以自行Google一下)

其實Chrome一直還有一個大缺點: 很糟糕的色彩管理支援。
但這個問題可能因為大部份人對網頁上看到的色彩真實度也不是很在意, 再者要能再出這些些微的差異, 螢幕本身也不能太爛。
(經檢驗後, 這應該不是一個普遍性的問題, 隨系統環境會呈現不且的結果, 但目前不清楚關鍵在哪裡)

但如果你多花了一些錢買了一個還不錯的螢幕, 然後興沖沖地把你的照片放到網路上, 你可能會開始意識到這個問題的存在了。

下面這張圖是我在Lightroom中的影像放到IE 11(版本11.0.9600.18537)上的一個對比。左邊是在IE中呈現的結果, 撇開瀏覽器所採用的縮放演算法所造成的雜點分佈不談, 若只就顏色的表現來看, 在IE中的顏色看起來和Lightroom中看到的色彩還算接近。

但同樣一張圖把它放到Chrome(版本58.0.3029.54 beta)上顯示, 差異就很明顯。Chrome中的圖明顯飽和度過高而且偏紅。

要做這些比對, 當然前提是在系統中已經用了正確的ICC檔做了正確的設定了。而這個問題, 會隨著你所使用的螢幕所能呈現的色域愈廣, 問題就愈明顯。

關於Windows中的螢幕的色彩管理設定, 可參考這些文章:

[教學]Windows 7色彩管理檔(icc)運作不正常的解決方法

有一些網站提供了測試網頁, 可以測試你所用的瀏覽器是否支援ICC color profile。以下這個網頁是我目前看到最詳細的:

Web browser color management test

網頁的前半段 "Does your browser support v2 ICC color profiles?" 可簡單測出瀏覽器對v2 ICC color profile和v4 ICC color profile的支援。這部份IE和Chrome都是OK的。

後半段 "Additional tests" 可進一步測試瀏覽器是對不同嵌入資訊的處理結果。按照W3C的規範, 當影像嵌入資訊未描述色域時, 預設應視為sRGB色域。所以網頁中以不同嵌入資訊的RGB圖像並排, 以測試瀏覽器呈現的結果。正確的結果應該RGB上下段顏色是完全一致無色差的。

下面這是IE中呈現的結果, 完美!


下面這是Chrome中呈現的結果, 慘不忍賭!



從這些結果看起來, 似乎Chrome對Untagged image確實是把它當成sRGB色域呈現(目視看起來是純RGB), 但對有sRGB tagged的影像呈現反而不正確(做過頭了?)

這個問題目前無解, 我想除非你在影像上傳前把sRGB tag拿掉, 讓所有瀏覽器都以sRGB色域呈現, 否則在Chrome裡就是會有這個問題。只有等待Google正視這個問題, 或有善心人士提供更好的方法了!

註一:
有些網頁會提到在Chrome啟動時加上參數 "--enable-monitor-profile" 啟用Chrome的色彩管理, 但這方式是無用的。我找到的資料是在Chrome 35之後已經不支援這個參數了, 它會把它當成一個URL處理。另一個明證是, 在上述的測試中證明Chrome已經支援ICC v2, v4, 不需再透過這個參數啟動。

註二:
這問題是出現在我的Windows 7系統上, 但在其他Windows 7上看結果有是正確的。看起來問題偏向整個系統設定的問題, 但還不清楚問題出在哪裡。若有善心人士有好的建議請告知。

註三:
後來Windows 7系統重灌後, 這問題就不見了。看來應該和系統某些設定有關, 但具體是哪一個部份還不清楚。


星期一, 3月 06, 2017

千尋盒子3 vs 小米盒子國際版

Android電視盒, 最早大家所熟知的大概就是小米盒子, 認真找一下巿面上類似產品非常多, 但好用的真的不知有幾個。
我的小米盒子使用經驗, 產品本身算穩定, 但因為許多節目限大陸區域才能看, 所以非常不方便。網路上所傳說的各種方法, 有說改DNS就可以順暢播放的, 有說用4G就沒問題的, 有說用Proxy軟體的。所有這些方式我都試過了, 個人認為唯一能解決這問題的只有用VPN連到中國大陸。
就在小米盒子用了快5年, 對它覺得有點食之無味又棄之可惜的感覺, 主要的問題在於小米盒子一開始的巿場都是在大陸地區, 許多節目內容因為大陸法規的限制, 在台灣要收看很不方便(卡、頓、不能看)。加上小米盒子並無Google服務, 許多App都無法安裝使用, 亦無法發揮Android系統本身軟體上的優勢。

因為這樣, 我都會觀注一下有沒有什麼產品可以取代小米盒子。
有一天突然看到批吸轟上的一個產品, 它寫著 千尋盒子3 完美越獄版+第四台 2016最新64位元增強版 打趴小米盒子

可以打趴小米盒子, 聽起來蠻厲害的, 可是真的沒有聽過。再來它說 "電視盒是讓您買回去看片的, 不是買回去研究的"。
這真是說到我心坎裡了! 我苦心研究了小米盒子數年, 還是無法解決許多影片台灣區觀看不順的問題(花錢掛VPN除外)。這個什麼千尋盒子的, 竟然可以買回來馬上就可以看! 如果可以, 那真是太棒了!

搜尋一下看看有沒有使用經驗分享, 卻找不到! 心想奇怪, 這麼好的東西, 怎麼都沒有人分享使用經驗? 但理智終究輸給了激情, 雖然找不到分享, 但我說服我自己, 既然店家敢這樣寫, 應該不至於差太多吧!
於是抱著撿到寶貪小便宜我不入地獄誰入地獄的豪情, 就給他訂了一個。只是當時的我並不知道, 這竟然是惡夢的開始

2016/9/3訂貨, 9/5收到東西。
收到東西後, 馬上接上去試試。結果就一直狂當, 根據我研究Android TV box的經驗, 我發現這東西根本不能用。看起來根本就是系統不穩, 開機後不定時當機, 很難撐過3分鐘順利操作。
透過批吸轟聯絡上店家普雷兒3C的客服, 客服要求我將機器先做Recovery試試。雖然心裡很清楚這不會有用, 但還是照著他的指示做了。結果當然是...不行

把這狀況回覆給客服後, 客服就要我照他們的指示, 把東西寄回去給他們處理, 說需要5到10個工作天處理。
新品就是壞的, 寄回去處理還要5到10個工作天? 於是我向普雷兒3C客服提出要退貨。
客服的回覆是:

我心裡覺得奇怪, 明明東西寄來就是壞的, 還不能退貨, 還要你們工程師檢測是否符合退貨標準?
那廣告上說的

質量問題7天無理由退貨, 是講假的嗎?
然而客服的回覆是:

客服回覆說 "要符合消保準退貨標準才能退貨處理這應該沒什麼問題吧"
其實我覺得這問題很大。但客服講得都這麼硬了, 我也不想再和他扯了。遇到這種店家, 只好自認倒楣。

真的過了大約10天, 收到普雷兒3C換了一台千尋盒子3。接上去試用, 果然可以用了, 不再當機了。可是老實說, 除了它的速度比小米盒子快一點, 然後沒有鎖Google帳號, 所以可以裝Google商店上的App之外, 我覺得並沒有比小米盒子好到哪裡去。
可是買都買了, 又不能退貨, 就將就著用吧! 安慰自己, 至少能用Google的一些功能, 像Youtube, Google相簿等等。

過程中, 在2016年11月底這個千尋盒子3又掛了一次!



向客服反應後, 再做一次Recovery的動作, 它就恢復了!
雖然可以用, 但使用起來非常不順, 尤其是要自己裝一些其它App來用時, 速度非常的慢。
最後我還是忍不住, 去買了一台小米盒子國際版。

比較一下千尋盒子3和小米盒子國際版, 幾個重點如下:

外觀質感絕對是小米盒子國際版大勝, 我在收到千尋盒子3時發現盒子上有一些小刮痕, 不過也沒特別向客服反應。後來在批吸轟上看到也有人反應類似的問題


硬體效能, 我覺得也是小米盒子國際版大勝。若你要在千尋盒子上裝一些硬體資源吃比較重的App, 像是Terrarium TV, 會lag很嚴重或是狂當。

軟體部份, 小米盒子國際版有支援完整的Google服務, 不過買來之後要自己花一些功夫研究一下要裝哪些App。但裝完App後, 用起來很順。所以小米盒子國際版很適合自己願意花一些時間裝App使用者。
至於千尋盒子3, 內建的App若要看一般影片是OK(主要就是千尋Station那個App), 至於說有很多東西可以看的那個貝殼圖示的App, 論畫質和界面根本就不能說它是一個 "產品", 倒像是學校學生寫的作業。不過如果你不計較影片畫質和影片內容,千尋盒子3的確是可以買來就看(只要你不要拿到有問題的), 不適合買來 "研究"。因為它不太適合再裝什麼App。

所以對照千尋盒子3的廣告來看, 小米盒子被打趴, 那是指第一代的小米盒子。若和小米盒子國際版來講, 它應該是被小米盒子國際版打到休克。

星期三, 3月 01, 2017

擋掉惱人的廣告-簡易版

前一篇提到如何設定DNS和路由器來擋掉惱人的廣告, 但那樣的作法只適合比較進階的使用者, 況且對一般人而言要自己架DNS也是一個困難。
這裡介紹一個比較簡單的方法, 只要下載App做一些簡單的設定, 就可以擋掉一些廣告。如果還有很惱人的廣告, 那就得用前一篇介紹的方法自己找出廣告的出處, 用自己的DNS擋掉了!

原理說明

概念上和前一篇的概念是一樣的, 在這說明一下, 若沒有興趣了解的人可以直接跳到開始動手:
1. 在網路的世界裡資料傳送是認IP address的, IP address就是每台電腦的門牌號碼, 它是一串數字, 如206.190.39.42。如果要一般人上網要記這串數字實在很難記, 而且IP也可能會改來改去, 所以我們看到的都是英文的domain name, 如tw.yahoo.com。
2. DNS(Domain name server)的功能是把domain name翻譯成對應的IP address, 當你在瀏覽器裡輸入tw.yahoo.com要連到台灣雅虎時, 電腦就會先向DNS查詢這個domain name對應的IP, 得到206.190.39.42, 接下來就是和這個IP溝通。
3. 當你連上網路後, 除了取得你電腦(手機)的IP外, 也會自動設定DNS。
4. 廣告的內容是由某些特定的伺服器所提供的, 網頁要播放廣告時, 會先向這些廣告伺服器取得廣告內容, 然後在畫面上呈現出來。所以只要讓電腦查不到(或查到錯的)IP, 這些廣告就播不出來。

這就是為什麼改掉DNS就可以擋掉廣告的原理。

網路上有一些人和機構也會定期更新這些廣告伺服器的黑名單, 前一篇所介紹的就是去網上下載這份黑名單放在自己的DNS裡, 把廣告擋掉。
但人家蒐集的黑名單有可能是不完整的, 如果你還會看到某些特別惱人的廣告, 我也介紹了如何自己找出那些廣告是哪裡來的。知道是哪裡來的, 就可以加在自己的DNS裡把它擋掉。

接下來這裡介紹幾個最簡單的方式, 可以擋掉大部份的廣告。

開始動手

在手機上
1. 到Play商店下載 "DNS Changer" (iOS版也有對應的軟體, 例如這個, 但我沒iOS可試)
2. 執行DNS Changer, 設定如下圖

3. 按下 "START"。

好了! 就這麼簡單!
圖中的兩個DNS是Alternate-DNS, 它是沒有廣告的DNS, 你也可以用其它沒廣告的DNS代替。


在電腦上
1. 在控制台->網路連線中選取你使用的連線
2. 按右鍵, 選連線內容->雙擊TCP/IPv4
3. 更改設定如下:
4. 按兩次確定

這樣就可以擋掉大部份的廣告。
當然還是可能有些漏網之魚, 如果你真的忍不住, 想自己把它加入黑名單擋掉, 那就要回到我前一篇介紹的方法。


星期二, 2月 28, 2017

擋掉惱人的廣告

網路上的廣告已經變成許多人的重要收入, 但也愈來愈猖獗, 愈來愈惹人厭。
之前最讓我厭煩的就是在看網頁時, 突然一個廣告大剌剌地跳出來擋在網頁上面, 逼得你得把它按掉才能繼續看你本來要看的東西。
現在有一種更過份的, 出現在Android手機的app上, 影片式的廣告, 一播就要播三四十秒, 關都關不掉。
這些, 根本是一種流氓的行徑!

要擋掉廣告, 方法很多。
最常見的是在手機或電腦上裝一個軟體攔截廣告, 如Adblock plus。或是用這篇介紹的方式改掉手機的DNS
但這種方式有兩個缺點: 一來是每支手機都要裝, 二來, 這些軟體會影響手機的效能, 也增加耗電量。

接下來提的這個方式, 是從家裡的路由器著手, 不會影響手機效能, 也不需在手機或電腦上安裝額外的軟體, 只要裝置連上家裡的路由器即可。當然如果是用4G, 那就得靠你的電信商幫你擋(電信商通常不會這麼做), 或是靠加裝app來解決了。

只要用自己的DNS server, 將廣告伺服器的IP改掉, 就可以擋掉這些惱人的廣告。
因為家裡有一台Synology的NAS, 可以當做DNS server。如果沒有, 就得用其它機器做, 但概念基本上是一樣的。

以下的步驟來自這個網頁, 這邊說明的是對應中文界面的法做:
https://synologytweaks.wordpress.com/2015/08/23/use-synology-as-an-ad-blocker/

以下設定需登入你NAS的設定網頁操作:

  1. 在Synology NAS上安裝DNS Server.
  2. 在 “轄區管理(Zones)”, 新增一個 “Master轄區(Master zone)”
  3. 網域類型(Domain type) 選 “正向轄區(Forward Zone)”
  4. 完整網域名稱設為 “null.zone.file”
  5. 主DNS伺服器(Master DNS Server)設為你的Synology NAS的IP (如: “192.168.1.2”)
  6. 序號格式選 “日期 (YYYYMMDDNN)”
  7. 在解析服器中啟動解析服器, 設定轉寄站, 以確保當你的DNS查不到IP時, 轉由其它DNS查詢

以下設定需透過Telnet /SSH設定, 記得先啟動你NAS的Telnet或SSH服務:

  1. 下載ad-blocker.sh腳本: https://www.dropbox.com/s/xz1i7hxb9sfug36/ad-blocker.sh?dl=0
  2. 將腳本複製到NAS的這個目錄: /var/packages/DNSServer/target/script/ad-blocker.sh
  3. 賦予腳本執行權限: chmod +x /var/packages/DNSServer/target/script/ad-blocker.sh
  4. 執行角本: sh /var/packages/DNSServer/target/script/ad-blocker.sh

至此, 你NAS上的DNS已經可以攔截廣告黑名單的伺服器, 它的方法是將這些伺服器的IP直接改寫成127.0.0.1。

你可以將你的手機、電腦, 都改用這個DNS。不過, 最快的方法還是在你的路由器上直接指定使用這個DNS, 這樣你家裡的所有設備只要連上Wifi, 就是用這個DNS。

接下來, 教大家怎麼找出惱人的廣告伺服器, 將它加入黑名單中。

1. 在Android裝置上安裝Filter Proxy。你可以利用這個軟體找出你的裝置到底都連到什麼地方去了?

2. 啟動Filter Proxy後, 在Android網路設定裡將Proxy指向localhost, port: 8000

3. 開始操作你的軟體, 這時所有連線都會被Filter Proxy記錄起來

4. 從log裡找出可疑的廣告伺服器, 長按將它加入URL Filter。在URL Filter裡的伺服器都會被Filter Proxy攔截起來。

5. 你可以反覆操作, 或在google上查詢你懷疑的domain name, 確認它是不是廣告伺服器。這裡我列出幾個超討厭的黑名單:



透過這種方式, 你可以找出你想到屏蔽的廣告伺服器。
我把這份黑名單放在一個叫temp.db的文檔中。
然後, 將這份黑名單和網上所公佈的黑名單合併起來, 當成我自己的DNS的黑名單。
這個步驟, 我寫成一個腳本自動執行。