有機會去碰到ICS的Build system, 老大丟了兩個shell檔,看的有點霧煞煞,想說找些東西來看,順便記起來。
Android 需要sign過的application,才能夠給予適當的權限來進行管控的動作(user mode),像之前開發ota的一些東西,就必須要先sign過release key才可以得到system的權限。
Anyway,Android 主要是透過四組key來維護整個security system,分別介紹如下(下面翻譯有些也是怪怪的,有機會碰到更了解後會回頭補充):
platform : 核心系統的key
shared:用來分享home跟contract 的process專用的key
media:如果package 需要用到media/download system(?)
releasekey:如果沒有shared 跟media的需求,這個key就是預設用來sign的key
目前上面這四個來說,我也只用過platform( for update.zip)跟releasekey(OTA apk)。
這些key就是拿來sign application,那我們一般沒有特別去指定key,build完系統後,android都是預設使用testkey來做sign的動作(path: source code root/build/target/product/security/)。一般在engineer /userdebug 階段都可以用testkey,但是testkey是不能拿來出release 成產品的,這樣是不被允許的。