【Android資訊安防】三星KNOX容器(2)

程式設計師聯盟發表於2019-02-28

【Android資訊安防】三星KNOX容器(2)

— 作者 謝恩銘 轉載請註明出處

內容簡介


  1. 前言
  2. 三星的KNOX容器例子app
  3. 我改動後的原始碼
  4. 主要的改動
  5. 後記

1. 前言


上一篇【Android資訊安防】三星KNOX容器(1)中, 我們簡介了Android的容器概念和三星的KNOX容器, 這次我們要來看一下建立KNOX容器的例子app, 以及我的實現。

下文中Container和容器可以互換。因為容器的英語就是Container。

不過今天這裡講的三星KNOX和KNOX的容器技術, 如果你不是用三星手機, 那麼基本不太會接觸。

2. 三星的KNOX容器例子app


三星官網的KNOX Container使用手冊頁面

你需要首先註冊一個三星開發者賬號。建立成功之後,登入。然後在你的開發者後臺可以建立和管理你的開發者License(證照)。

三星提供了一個開放原始碼的Container例子app,在這裡 ,不過須要首先登入開發者賬戶才能獲取。

這個例子app就是一個Android專案,把它用Android Studio執行起來,使用截圖如下所示:

【Android資訊安防】三星KNOX容器(2)
初始介面

【Android資訊安防】三星KNOX容器(2)
須要填入Enterprise License和KNOX License

【Android資訊安防】三星KNOX容器(2)
啟用了Enterprise License和KNOX License之後顯示的介面

【Android資訊安防】三星KNOX容器(2)
選擇要建立的Container型別


我的app擴充了三星的KNOX Container(容器)例子app , 加入了新功能:

  • 在把app遷移到Container之前儲存app的資料
  • 遷移app到Container
  • 匯入儲存的資料到Container中的app
    (因為app從Container外遷移到Container裡,會首先刪除所有資料)

3. 我改動後的原始碼


原始碼在我的Github上:

github.com/frogoscar/k…

有時間可以研究一下原始碼,如果是做Android開發的朋友,應該不難理解此原始碼。

如果要方便測試, 可以把你在開發者後臺建立的Enterprise License和Knox License分別填入原始碼的幾個EditText裡 :

edtKLM.setText("你的KNOX License");
edtELM.setText("你的Enterprise License");複製程式碼

, 就不用每次複製黏貼了。

測試截圖:

【Android資訊安防】三星KNOX容器(2)

4. 主要的改動


  • ContainerCreationRemovalActivity.java中的populateAPIList裡增加一個選單項:
arrAPIs.add(new ListItem(count++,      
getString(R.string.api_install_application_in_container),      
APIType.DISPLAY_NUMERIC_EDITTEXT_POPUP,      
KnoxSDKVersion.VER_2_0,      
getString(R.string.api_install_application_in_container),      
getString(R.string.enter_container_id), "", null, null, null));複製程式碼
  • 在ContainerCreationRemovalModel.java中的
    invokeKNOXAPI(ListItem listItemObj, String userEnteredData, ActivityLauncher activityLauncher)複製程式碼

    方法中增加一個case 6, 這個增加的switch的case就對應了上面增加的一個可按的List。

5. 後記


  1. 體驗過後發現,三星的KNOX Container確實比Google開發的Android容器(Android for Work)功能更強,更多,安全效能也更好。

  2. Android for Work目前是Android預設的容器技術,而KNOX Container只能存在於三星的移動裝置(手機或平板)上。所以如果你不是用三星的裝置來做開發,那麼KNOX Container就用不上了。


人世間,
萬千情感皆有溫度,
千萬程式碼似有性格。
這裡有原創教程,IT叢林……
和你一起探索程式人生。
微信公眾號「程式設計師聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮鬥的嵌入式軟體工程師。
個人簡介
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:“向著標杆直跑”

相關文章