The Taiwan government has launched the new Public Warning System to warn cell phone subscribers the happening emergency. There are a few integration need to be done to support PWS on Ubuntu phone.

  1. rild from Android.
  2. ofono to dbus.
  3. User interface to handle the dbus event.

ofono supports the CBS/PWS[1] long time ago. There are a few TODOs to support the PWS

  • Make sure the rild can receive and pass the Cell Broadcast Service (CBS) to ofono
  • Need a userspace program to handle the Emergency Broadcast from dbus.

References:

[1] 國家通訊傳播委員會_災防告警系統(PWS)介紹 – http://www.ncc.gov.tw/chinese/gradation.aspx?site_content_sn=3744
[2] ofono/ofono.git – Open Source Telephony – http://git.kernel.org/cgit/network/ofono/ofono.git/tree/src/cbs.c#n100
[3] PWS specs

The post is based on engineering note.

Shinyei PPD42NS[1] 做的粉塵感應器 (Dust sensor)[0] 是透過計算一定時間的脈衝次數,紀錄大於 1um 小於 2.5um 的微粒,測量結果單位是 pcs/0.01cf,必須要經過轉換,才能符合常見的細懸浮微粒 (PM2.5) 的 ug/m3 單位,然後透過 ug/m3 才能再算出 AQI[2]。
參考這篇論文 – Preliminary Screening System for Ambient Air Quality in Southeast Philadelphia[3],文中提供了一些公式可用來轉換。
 
為了方便用 node.js 兜起來用,順手改了一版 upm[4][5] 出來。不過由於濕度會影響微粒計算[6],必須配合溼度計,套用雨天或晴天不等的濕度矯正參數公式才會比較準確。
 
[2] Air Quality Index (AQI) Basics – https://airnow.gov/index.cfm?action=aqibasics.aqi
[3] Preliminary Screening System for Ambient Air Quality in Southeast Philadelphia – http://www.cleanair.org/sites/default/files/Drexel%20Air%20Monitoring_-_Final_Report_-_Team_19_0.pdf
[4] ppd42ns: convert pcs/0.01cf to μg/m3 to aqi by chihchun · Pull Request #409 · intel-iot-devkit/upm – https://github.com/intel-iot-devkit/upm/pull/409/commits/ad31559281bb5522511b26309a1ee73cd1fe208a
[6] Seasonal variation of particle size distributions of PAHs at Seoul, Korea | SpringerLink – http://link.springer.com/article/10.1007/s11869-008-0002-2

每農曆新年討個彩頭,總是要買張樂透彩。去年曾經認真研究過一次獎金結構

後來發現其實每年農曆年的產品都大同小異,

記得,購買彩卷不是一項投資,而是購買一個短暫的喜悅。小賭怡情,買多只會抵銷喜悅的快感唷!

范疇先生[1]一連寫了幾篇 FUD[2] 文章,警告政府必須立刻開始推動《晶片國安法》[3],否則會被「大數據」實質統一台灣

文章中引用了許多科技詞彙,甚至舉出 Seth Wahle[5] 把 RFID/NFC Tag 打進手臂[6][7],藉此將神奇小晶片偷渡過安全檢查,從此就可以貼身入侵別人手機。這是個很有故事性的劇情,但是將各種不明究理詞彙如「大數據」(Big Data)、互聯網、物聯網、射頻晶片放在一起,只能寫出不入流的科幻小說,范疇的推論經不起科學的檢驗。

Seth Wahle 作為一個 biohacker[8] 嘗試改造人體,但除了 2012 年部份 Samsung Galaxy S II, S III and some HTC phones[9] 等早期版本 Android 手機被發現漏洞外可以直接安裝執行 App 外。以新型手機作業系統而言,Seth Wahle 手臂上的 NFC Tag 要入侵你的手機,必須滿足三個前提

  1. 受害者的手機開啟 NFC 功能,並且已經解鎖。
  2. 受害者點擊了 NFC Tag 觸發的網址連結。
  3. 受害者選擇下載安裝了不可信任的軟體。

不需要 NFC 功能,任何透過郵件、簡訊、即時通訊中的連結,都可能觸發受害者。與其這麼費勁又冒著曝光危險的近身攻擊,又只能用在舊版手機上,現在政府[10]的手段高明許多。前鎮子曝光的 Hacking Team[30],就被查出使用短訊漏洞[11],促使手機安裝 RCS (Remote Control System) 後門監控軟體[12][13]。的確有許多跡象顯示中國政府支持網路入侵攻擊,但是非接觸式智慧卡晶片的缺乏計算能力與儲存空間,沒有主動收集資料的能力,頂多被視為針對某些舊有漏洞來承載惡意代碼的載具。只要讀卡端的系統設計安全,不用擔心晶片卡入侵所有連網裝置。

你需要擔心的是軍事化的網路攻擊。除了巧妙的塞入後門外,政府支持的網路團隊會利用 0day[31] 尚未公告或透漏的系統漏洞,有系統、大規模的採取入侵行動。即便像是 BlackHat 中會有研究人員揭露出像是透過 MMS 等方式[32][33]植入惡意程式到受害者手機,但是等到一般使用者安裝上修正程式前仍有時差,此外政府支持的網路攻擊團隊很可能還掌握更多 0day exploits.

事實上缺乏資安常識與戒心的一般使用者,往往更容易誤裝非官方軟體或者上當被釣魚[14][15],上述透過特定漏洞的複雜入侵手法通常被用來針對特別有價值的對象。

至於范疇先生所提的二代身份證或卡式台胞證等 Contactless smart card,並非神秘的特製晶片,也非具備強大運算能力的電腦。二代身份證是使用 ISO/IEC 14443B (13.56 MHz) [16] 規格的無線晶片,明定可用通訊協定[17]。一般具備 NFC 功能的手機應該也可以讀取,但是在沒有解碼模組的狀況下只能讀出一串亂碼。

與其疑神疑鬼覺得這些小晶片會偷偷的使出外太空科技的「吸星大法」,不如認清卡式台胞證就是中華人民共和國政府用以維穩的工具[18][19]。而且由於設計的限制,以至於難以掛失,要是加密模組被破解或卡片遭到冒用,個人身份[22]被遭到冒用後,就難以補救挽回。

你真正需要留意的反而是具備強大運算能力而且承載個人資料的智慧型手機。這些來自中國的手機漏洞可能被藏在預載的 App 軟體[23][24][25],甚至是韌體固件[26][27]中,即便是台灣製造商,也可能誤用藏有後門的系統元件或解決方案。

作為一個消費者,或許你可以選擇一個採用安全技術的製造商,像是 Android 中的 SELinux (Security-Enhanced Linux)[28] 可以限制 App 或固件只能存取某些資料。但是話說回來 SELinux 由美國國家安全局開發[29],同樣也是老大哥,你要相信那一位?

[1] 范疇 https://www.facebook.com/2020bluesea
[2] Fear, uncertainty and doubt https://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt
[3] 范疇 – 立院應立即推動《晶片國安法》 – 今周刊 http://www.businesstoday.com.tw/article-content-100207-117624 http://buzzorange.com/2015/07/16/law-for-chip/
[4] 范疇 – 「大數據」實質統一台灣? – 今周刊 http://www.businesstoday.com.tw/article-content-100207-119451 http://buzzorange.com/2015/07/27/big-data/
[5] Seth Wahle https://www.facebook.com/seth.wahle
[6] Hacker Implants NFC Chip In His Hand To Bypass Security Scans And Exploit Android Phones http://www.forbes.com/sites/thomasbrewster/2015/04/27/implant-android-attack/
[7] BBC – Future – The man who hacks phones with an implant under his skin http://www.bbc.com/future/story/20150515-i-hack-phones-with-touch-alone
[8] Biohacking https://en.wikipedia.org/wiki/Biohacking
[9] Android, Nokia smartphone security toppled by Near Field Communication hack | Ars Technica http://arstechnica.com/security/2012/07/android-nokia-smartphone-hack/
[10] 維基解密公布100多萬筆Hacking Team內部郵件 | iThome http://www.ithome.com.tw/news/97348
[11] Dangerous Texts: Preventing SMS Cracking – InfoSec Institute http://resources.infosecinstitute.com/dangerous-texts-preventing-sms-cracking/
[12] 简要分析Hacking Team 远程控制系统-月光博客 http://www.williamlong.info/archives/4293.html
[13] 人手一份核武器 – Hacking Team 泄露(开源)资料导览手册 | WooYun知识库 http://drops.wooyun.org/news/6977
[14] 讲讲最近非常时髦的钓鱼攻击:银行存款杀手(多图) http://daily.zhihu.com/story/4637119
[15] 伪基站 + 钓鱼 = 完美黑产 – 乌云君 – 知乎专栏 http://zhuanlan.zhihu.com/wooyun/19890065
[16] ISO/IEC 14443 – Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/ISO/IEC_14443
[17] ISO/IEC 14443-4:2008 Identification cards — Contactless integrated circuit cards — Proximity cards — Part 4: Transmission protocol http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50648
[18] BIG BROTHER IS WATCHING YOU – 台胞證免簽卡式化 http://blog.nutsfactory.net/2015/06/17/big-brother-is-watching-you/
[19] 驚曝中共利用二代身份證監控 破解有妙招 | 破解方法 | 追蹤與反追蹤 | 大紀元 http://www.epochtimes.com/b5/13/11/23/n4017563.htm
[20] 二代身份证的隐患 ~ 南方人物周刊 南方人物周刊 http://www.nfpeople.com/story_view.php?id=4768
[21] 二代身份证的意见和建议 http://www.boxun.com/cgi-bin/news/gb_display/print_versiOn.cgi?art=/gb/pubvp/2008/10&link=200810270647.shtml
[22] Identity theft – Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Identity_theft
[23] Chinese Android phone maker hides secret backdoor on its devices | Computerworld http://www.computerworld.com/article/2860742/chinese-android-phone-maker-hides-secret-backdoor-on-its-devices.html
[24] CoolReaper Revealed: A Backdoor in Coolpad Android Devices – Palo Alto Networks BlogPalo Alto Networks Blog http://researchcenter.paloaltonetworks.com/2014/12/coolreaper-revealed-backdoor-coolpad-android-devices/
[25] HTC多款手機被發現有官方預留的後門程式 | iThome http://www.ithome.com.tw/node/70135
[26] 翻墙问答﹕台资制手机晶片出问题 http://www.rfa.org/cantonese/firewall_features/taiwan-chips-12122014080202.html
[27] 威盛電子淪為中國間諜?/南方快報《政治修理站》 http://www.southnews.com.tw/polit/polit_00/14/02942.htm
[28] Security-Enhanced Linux in Android | Android Open Source Project https://source.android.com/devices/tech/security/selinux/index.html
[29] Security-Enhanced Linux – NSA/CSS https://www.nsa.gov/research/selinux/
[30] 「義賊」入侵駭客公司Hacking Team,盜取500GB內部文件揭露幕後客戶為各國政府 | T客邦 – 我只推薦好東西 http://www.techbang.com/posts/24578-hackers-are-terrible-hacking-team-stolen-500gb-internal-data
[31] https://en.wikipedia.org/wiki/Zero-day_%28computing%29
[32] 950 million Android phones can be hijacked by malicious text messages | Ars Technica http://arstechnica.com/security/2015/07/950-million-android-phones-can-be-hijacked-by-malicious-text-messages/
[33] Experts Found a Unicorn in the Heart of Android › Zimperium Mobile Security Blog http://blog.zimperium.com/experts-found-a-unicorn-in-the-heart-of-android/

原文發布於: http://www.zhihu.com/question/33197302/answer/56199040

我是 Canonical 台湾台北办公室员工,虽然因为业务关系时常来往中国各省差旅,恐怕无法反映中国地区程序员的体验。

有钱任性的创办人,乐意付钱让人作开源项目,对于信仰自由软件或开放原码的人应该相当有吸引力。差别是你写的每一行代码大概都会是 GPL 或 LGPL 授权,无论是 merge proposal 或是 bug comment 都公布在 Launchpad[1] 供人评阅。有许多機會與技术能力强大的牛人共事,大部分的同事都非常友善、容易合作。在这里身為软件程序员也很容易找到工作、生活的平衡点,反正自愿决定 是否加班。

高度自由,可以弹性的选择工作时间与工作地点。事实上,不少人是在家工作,我自己依照需要独立专注工作的需求,通常一周有一天会在家里工作。在某些团队, 你也能自由选择如何完成你的工作,包含尝试不同的开发语言或技术方案。当然这些自由度与开心程度取决你的直属老板的管理风格与能力。

由于许多人都在家工作,平时透过网路联系,一年半载才有机会见面,这时 team building 就更重要了。早期的时候,每个半年有一次 Ubuntu Developer Submmit,召集全球员工一同旅行到美国或欧洲,进行为期一周的欢乐派对^H^H会议,往往开场的时候得叮咛晚上别饮酒过量,但是会议时间过后肯定可 以在附近的酒吧看到每个团队一边狂欢一边讨论工作。后来由于公司规模太大,召开全员到齐的会议太昂贵。只剩下各个团队举办 Sprint 会议,规模大概两三百人到十几人节奏明快的会议。上回到北京開 Sprint, 结束日前一晚由 Vice President 带著一群老外隊伍,到三里屯酒吧街对饮到清晨三点,隔日开会都醉了。

这个公司有许多有挑战性的工作,也有非常乏味的苦力工作,端视你在那一个事业群、团队下面。每个一段时间会因为创办人兴趣^H^H业务变动,进行组织改 组,当下最大的两个软件工程事业群是 Cloud Dev Ops 与 Ubuntu Engineering and Services。从 Ubuntu Engineering and Services 中的工程团队,又大致分成 Ubuntu Engineering 与 Commercial Engineering。

其中 Ubuntu Engineering 做的是产品项目,像是 Ubuntu Phone, Desktop, Core, Unity8, Mir, Snappy 等等。做产品相对比较具有挑战性,会依据 Mark Shuttleworth 的产品策略或产品经理定下开发蓝图,以 Agile 敏捷开发模式进行产品项目开发 (之前是依据半年的发行周期),每隔两三周都会交付成果。由于代码完全开源,所以开发时候也可能有外界社区加入给予意见。全球的员工透过 CI/Launchpad/IRC/Kanban board 等协作工具合作,需要线上沟通的技能透过文字或代码清楚表达你的思路。除了公司内部小组间的合作,也常常需要回应开源社区的疑问。

至于 Commercial Engineering 则是将产品出货的部门,产品类型多元,可能是 Desktop、Phone 或是神秘的研发计划。其中最枯燥无味的大概就是 Desktop preload project,许多工作已经制式化,日常是不停重复同样的工序,像是验证硬件程序、测试 BIOS、打内核补钉、整 workaround、出貨排期、发行预载版等等。这些工作是确保搭载 Ubuntu 出货的笔记本等硬件功能都可以完美的运行,由于硬件完成的时候因为各种因素会导致驱动无法运作,像是 BIOS 不按照业界规格实践、不同的硬件使用同样的产品代码,导致使用错误的驱动程序、或是新硬件平台时内核支持功能未完善等,这些细节都需要大量人力的调适。这 个部门会适配来自不同合作伙伴的闭源软件,依据授权的不同导致部份代码无法开源。硬件调适与功能验证[7] 是 Canonical 收费的主要服务之一。

即便仍然会有些开发工作,像是做 userspace 的软件问题、LTS 的共用预载版、Firmware Test Suite[2]、Checkbox Job[3]、上述这些重复工序的自动化工具,但是常态仍是重复工序。而空闲程度通常跟出货季节相关,淡季时有些人会兼职当猎头、专研新技术、上网选修课 程、修 Launchpad[1] 上公开的臭虫[8]、翻译物理书籍等等。不过目测接下来一两年的 Snappy Personal Ubuntu 会从 Debian-based 换成 Snappy[4],以及 Unity8 的更换,应该会有一波新的挑战。

Commercial Engineering 也有一些来自不同客户的订制项目,订制项目通常包含大量软件改造与功能适配等工作,相对会多元有趣一些。

目前除了在家工作的员工之外,Canonical 在全球有四个主要办公室 London、Boston、北京、台北,依照事业群或团队的要求,会要求是否进办公室,通常与硬件相关的部门,像是需要实体硬件上测试的 QA 等就必须进办公室工作。各地辦公室的福利不同,北京辦公室就让本地员工来回答吧。由于许多员工都是在家工作,所以有个坑人的规定,是员工必须自备笔记本, 即使在办公室上班,公司仍不配发电脑。

在台北办公室的福利之一是办公室位于 Taipei 101,以下是我的窗景 (四十七楼) –
20150707_184148-01
以上是我的个人体验,你也可以参考一下 Glassdoor 上的员工评价[5],看看其他人的说法。

如果看了这么多之后,你对到 Canonical 工作感兴趣,欢迎查看目前职缺列表[6],在填送求职申请的时候,介绍人一栏写 Rex Tsai. 并私下与我联系,以便告知你应征的技巧或调查职缺内容或向征人团队经理写推荐信。除了帮点小忙外,Canonical 也提供 Referral Bonus Policy,正式通过试用后介绍人会得到 USD 1,000-2,000 的介绍费奖励,依照所需职位的急迫重要性不同,我曾经最高拿过 USD 5,000 的介绍奖金呢!有兴趣请来联系吧。

[1] Launchpad
[2] Firmware Test Suite Kernel/Reference/fwts
[3] Testing/Automation/Checkbox
[4] Ubuntu’s Desktop-Next Switching From .DEBs To Snappy
[5] Canonical Reviews
[6] Canonical | Careers

[7] Certification

[8] BugSquad – Ubuntu Wiki

錯把卡式台胞證號當作統戰手段[1]就搞錯重點了,取得台胞證不代表你取得中國國籍成為中國公民。雖然台灣國籍已比華人以外的外國人來的容易,但是仍須置產有戶口才有資格取得國籍,而大城市如北京、上海更是難以取得戶籍,即便有些人願意取得,仍須跨過基本門檻。

你無須擔心中國以什麼材質發特別簽證,也不用惱怒中國以什麼樣的口吻歡迎或恐嚇台灣回歸。真正需要擔心的是台灣戶籍直接被視為合法中國戶籍的那一天,而你服義務兵役聽從的是中國籍將領,不繳國民保險、健保以及所得稅,而改繳五險一金[4]

台胞證免簽卡式化的是中國政府於俗稱「維穩21條」中的一卡通政策,是 2015 年中共中央辦公廳、國務院辦公廳發布的《關於加強社會治安防控體系建設的意見》[2]中的第十五條

(十五)加強基礎性制度建設。建立以公民身份號碼為唯一代碼、統一共享的國家人口基礎信息庫,建立健全相關方面的實名登記制度。建立公民統一社會信用代碼製度、法人和其他組織統一社會信用代碼製度,加強社會信用管理,促進信息共享,強化對守信者的鼓勵和對失信者的懲戒,探索建立公民所有信息的一卡通制度…

統一證卡是 Big Brother 打造用以維穩[5]的實名政策。卡式台胞證美其名是未來所有實名制度,無論支付寶、淘寶、銀行、線上訂票都可無礙使用,但此制度把銀行、信用卡、酒店入住紀錄、乘搭過的飛機、火車、高鐵、社會保險等等私隱資料連結成「一卡通」,加上二代身份證卡片可以對應指紋,扎扎實實的紀錄每個行為。

這項政策已經逐步進行一段時間了,無論是電信卡、銀行、車票、機票,現在一律都改用二代身份證了,而且許多業務沒有卡片是無法辦理的,只持有台胞證連異地辦理都不行,想躲也避不開。

所以你真的該買 RFID Blocking 錢包了。

[1] 台灣對台胞證免簽卡式化宣佈反應不一 – BBC 中文网 http://www.bbc.com/zhongwen/trad/china/2015/06/150615_china_taiwanese_new_card
[2] 中办国办:探索建立公民所有信息一卡通制度-新华网 http://news.xinhuanet.com/politics/2015-04/13/c_1114955339.htm
[3] https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9B%BD%E5%A4%A7%E9%99%86%E7%81%AB%E8%BD%A6%E7%A5%A8%E5%AE%9E%E5%90%8D%E5%88%B6
[4] http://wiki.mbalib.com/zh-tw/%E4%BA%94%E9%99%A9%E4%B8%80%E9%87%91
[5] https://zh.wikipedia.org/wiki/%E7%BB%B4%E7%A8%B3