Saturday, May 23, 2015

02 DRM 架構

DRM框架的設計是agnostic 和抽象的specific DRM scheme,具體的DRM插件中的特定DRM方案的實施細節,該DRM框架包括:


  • 簡單的API來處理複雜的DRM運營

  • 註冊用戶和設備到在線DRM服務

  • 從許可證,DRM內容和其許可證的約束中提取信息

  • 並最終解密DRM內容。

DRM框架的設計是實現無關,在抽象的計劃,具體的DRM插件中的特定DRM方案的實施細節。該DRM框架包括簡單的API來處理複雜的DRM運營,註冊用戶和設備在線DRM服務,從許可證,準DRM內容和其許可證的約束中提取信息,並最終解密DRM內容。


AndroidDRM框架兩種架構層實現的:


  • DRM框架API,它是給APP開發者使用的Android應用程序框架,和貫穿Dalvik虛擬機用於標準應用。

  • Native Code DRM管理者,它實現了DRM框架,並公開了DRM plug-ins來處理各種DRM schemes方案的權限管理和解密接口。

 


2


 



02 DRM 架構

01 DRM簡介

介紹


本章節將介紹Android DRM框架的概念,並介紹了DRM外掛必須實現的接口interfaces。


Android平台提供了一個可擴充的框架,DRM可以讓應用程序管理,並且根據與內容相關聯的許可,提供限制權利保護的內容。該DRM framework框架支持多種DRM schemes方案;其中DRM schemes方案的設備,支持設備製造商( up to the device manufacturer)。


在Android 3.0的推出的DRM框架提供了統一接口(unified interface),用於應用程序開發人員和隱藏的DRM操作的複雜性。


DRM框架提供了二種一致的操作模式:


 


  • 保護的內容

  • 非保護的內容

DRM schemes方案可以通過許可元數據metadata定義非常複雜的使用模式。DRM框架提供DRM內容和許可證之間的關聯,並處理權限管理。這使得媒體播放器必須從DRM保護或未受保護內容抽象。


MediaDrm API class是用來獲得密鑰,用於來把受保護的媒體流做解密。


https://developer.android.com/reference/android/media/MediaDrm.html


 


1


 


 


Figure 1. DRM Hardware Abstraction Layer


MediaCrypto class 透過與 MediaCodec 來解碼加密的多媒體,Crypto schemes 加密方案是使用 16 byte UUIDs, 開發者可以透過 method isCryptoSchemeSupported(UUID) 函數,來確認這機器是否有支持該解碼。


在移動設備提共豐富的數字內容(rich digital content)是對用戶很重要的,為了讓內容廣泛使用,Android開發者和數字內容出版商需要通過Android系統來支持的DRM。為了使Android設備上可用的數字內容,並確保至少有一個一致的DRM可以跨所有設備,谷歌提供不用版權費用的DRM在兼容Android系統上。在Android3.0及更高平台上,整個DRM plug-in 結合Android的DRM框架,並可以使用硬件支持的保護,以確保優質內容和用戶使用憑證。


DRM插件中所提供的內容的保護取決於基礎硬件平台的安全性和內容保護功能。該設備的硬件功能包括硬件安全引導建立一個安全機制和保護加密密鑰。


該設備的內容保護功能,包括通過可靠的輸出保護機制,保護設備和內容保護解密。並非所有的硬件平台支持所有上述安全和內容保護功能。


安全並不是僅靠單一個地方實現,而是依賴於硬件,軟件和服務的整合。提供包含硬件的解決方案,和一個可信任引導機構(trusted boot mechanism),和用於處理安全功能的安全OS的結合,是提供一個安全設備的關鍵。



01 DRM簡介

Friday, May 22, 2015

柯博文老师的新书(简体)- 树莓派实战指南-手把手教你掌握100个精彩案例

 


 


 


 


 


 


 


 


柯老師的新書-樹苺派實戰指南-手把手教你掌握100個精彩案例


  • 作者: 柯博文

  • 出版社:清华大学出版社

  • 出版日期:2015-07-1

  • 語言:简体中文

  • ASIN: 

  • 定价:元

  • 京东:  元

  • 当当:  元

  • 亚马逊:  元

 


 


 


 


Screen Shot 2015-05-22 at 10.04.55 AM


 


 


 


 



柯博文老师的新书(简体)- 树莓派实战指南-手把手教你掌握100个精彩案例

Tuesday, May 19, 2015

USB 搖桿安裝與使用

USB 搖桿安裝與使用

下載: https://yukkurigames.com/enjoyable/


 

各位手上如果有USB遊戲搖桿,想要使用在Mac電腦上的話,可以透過這個Enjoyable軟體,來安裝和設定,很快的就能把USB搖桿的按鍵,對應到您所指定或設定的鍵盤滑鼠動作。

 


 


Screen Shot 2015-05-20 at 12.23.04 PM


Screen Shot 2015-05-20 at 12.23.15 PM



USB 搖桿安裝與使用

Raspberry Pi Advanced Projects book

Raspberry Pi Advanced Projects book


price: $2.99


buy on iBook Store


Book Description


With the Feb 29,2012 birth of Raspberry Pi, the world was godsmacked that a computer the size of bsiness card could rival the power of a small desktop computer


Screen Shot 2015-05-20 at 8.24.23 AM



Raspberry Pi Advanced Projects book

ICBlock 圖形化程式產生器

柯老師的作品,透過滑鼠拖拉的方法,自動產生程式


 


網址在此http://www.powenko.com/ICBlock


Screen Shot 2015-05-19 at 9.57.47 PM



ICBlock 圖形化程式產生器

Monday, May 18, 2015

做遊戲模擬器

Q:我一開始先從第二章 做安裝作業系統,之後直接跳到第17章去做遊戲模擬器,這樣模擬器用linux指令可以正常開啟遊戲嗎

A:可以啊


Q:因為我試好多次 都不能…

A:可以把畫面抓給我看嗎?或者是您因該有依照書 和 教學影片的動作作流程吧~


Q:您書中有段指令$ ./ retroarch -L fceumm_libretro.so

Q:我輸入後 後面加遊戲捷徑

Q:他開不起來 可是只有下./retroarch ,就可以開模擬器,可是不能直接執行遊戲

A:請問您的 ceumm_libretro.so 所放的位置是在哪裡?

A:您可以用絕對路徑試試看

A:如果不確定的話,可以都放在同一個路徑中

A:就是放在 ./retroarch 這一個路徑中!



做遊戲模擬器

/etc/modules 的功用

讀者的問題


Q:我進$ sudo nano /etc/modules,結果裡面所有文字都被我刪了…


Q: 這邊是處理什麼的文件

音效卡設定

把以下內容貼回去

snd-bcm2835



/etc/modules 的功用

閃爍畫面

讀者的問題


Q:您有遇過近視窗化界面後 會一職閃爍畫面的問題嗎, 一直

A:你的意思是 HDMI 的輸出到LCD 銀幕嗎?


A:如果是的話,簡單的辦法就是換個新款的LCD 銀幕


A: 方法二,既是去調整HDMI 的輸出設定    http://elinux.org/RPiconfig



閃爍畫面

Monday, May 11, 2015

9元美金的 ARM 實驗版

「C.H.I.P 」產品大小約等同於一張信用卡,採開源硬體(Open Hardware)和開源軟體(Open Software )設計,內建Linux作業系統。為了壓低價格,處理器採深圳Allwinner製造商出產的


  • 1Ghz R8 ARM  A13處理器 (Mali 400, GPU w/ Open GL 2.0 & OpenVG 1.1)

  • 512MB記憶體 MMR3

  • 儲存系統則採eMMC規格,內含4GB容量

  • 內建WiFi 802.11b/g/n

  • 藍牙4.0 、USB、Micro USB、HDMI等各種傳輸接口,讓你接上顯示螢幕即可隨插隨用。

 


 


Screen Shot 2015-05-12 at 8.12.41 AM


然後它有外接的板子,可以接到VGA 和HDMI上


Screen Shot 2015-05-12 at 8.15.32 AM


 


目前軟體的部分它可以支持


 


資料來源: https://www.kickstarter.com/projects/1598272670/chip-the-worlds-first-9-computer



9元美金的 ARM 實驗版

Tuesday, May 5, 2015

Friday, May 1, 2015

03 LED 燈光控制-打開所有版子上的LED 燈

打開所有版子上的LED 燈:


範例 ch7\c01_LEDon.js


1. var b=require('bonescript');

2. b.pinMode('USR0', 'out');

3. b.pinMode('USR1', 'out');

4. b.pinMode('USR2', 'out');

5. b.pinMode('USR3', 'out');

6. b.digitalWrite('USR0', 1);

7. b.digitalWrite('USR1', 1);

8. b.digitalWrite('USR2', 1);

9. b.digitalWrite('USR3', 1);



03 LED 燈光控制-打開所有版子上的LED 燈

02編輯環境- Cloud9 IDE

 


事實上這個系統已經有一個很棒的程式語言編輯工具軟體叫做Cloud9 IDE , 不需要任何安裝和設定,就可以直接進行, 安裝、設定、和執行,並且設定中斷點和除錯,官方的網站在此https://c9.io/


7-1a


圖7-1a Cloud9 官方的網站


STEP1: 連接USB 到電腦上

請透過USB 連到電腦上,就是把USB 線接到BeagleBone Black 上,另外一頭你可以接到電腦上。

接下來的話,就會看到BeagleBone Black板子上燈光的閃爍,代表正在開機中,請稍等10秒,等完成順利開機。


 


 


STEP2: 瀏覽器進入192.168.7.2

在請請透過瀏覽器chrome 或Firefox ,進入192.168.7.2網頁進入BBB 的網頁中,並 點選網頁中下方的「Cloud9 IDE」選項,如下圖所示圈起來的位置的位置。


7-2a


圖7-2a Cloud9 官方的網站


順利的話就會出現下圖所示的「Cloud9 IDE」編輯軟體中。


7-3a


圖7-3a 「Cloud9 IDE」編輯軟體


對應的位置是到 /var/lib/cloud9/bonescript/


 


 


STEP3: 新增檔案


接下來請按下畫面中的「+\New File」的按鈕,就可以新增一個檔案。


7-4a

圖7-4a 按下畫面中的「+\New File」


 


 


STEP4: 撰寫程式

在輸入的新增的編輯器中,輸入以下程式。


範例 ch7\myAPP.js

1. var b = require(‘bonescript’);

2. var state = b.HIGH ;

3.

4. b.pinMode(“USR0″, b.OUTPUT);

5. setInterval(toggle, 1000);

6.

7. function toggle()

8. if(state == b.LOW) state = b.HIGH;

9. else state = b.LOW;

10.

11. b.digitalWrite(“USR0″, state);

12.


7-5a


圖 7-5a


 


 


 


STEP4: 儲存檔案

儲存檔案,請選取 File\Save As…


7-6a


圖 7-6a

設定檔案名稱,建議存到cloud9\demo\  底下的「myApp.js」


7-7a


圖 7-7a 執行


STEP5: 執行程式


接下來將會介紹如何執行剛剛儲存的程式, 請點選畫面中的這個「Run」按鈕就能執行。


7-a8


圖 7-8a 選畫面中的這個「Run」按鈕


 


 


稍等一下之後,就會出現右邊的除錯編輯視窗,請點選圖案中的「三角形」按鈕,執行程式。

這個除錯編輯視窗 ,上面分是:

1. 執行到下一個中斷點。

2. 下一行。

3. 進入函數。

4. 回到呼叫的函數。


7-a9


圖 7-a9 執 請點選圖案中的「三角形」按鈕


執行結果:

執行結果,如下圖所示,就會看到版子的第一個燈的每一秒鐘閃明暗改變一次,照成閃爍的效果。


 


7-a10


圖 7-a10 執行結果


7-a11


圖 7-a11 實際在硬體上的執行情況



02編輯環境- Cloud9 IDE

01 BoneScript程式語言的介紹

BoneScript是直譯式的程式語言,意思是當成是執行時,才去把程式語言翻譯成執行碼,然後執行,並且他是針對BeagleBone Black作業系統, 特別開發並且使用上非常簡單。因為他的程式語言全部都是公開程式碼的,只要打開程式碼,就可以清楚了解,並且知道如何執行和設計。


  • 官方網站在此http://beagleboard.org/support/bonescript

  • 官方範例教學 http://elinux.org/Beagleboard:BoneScript

接下來,我們會在這個章節中給各位透過幾個實際範例,讓大家了解怎麼去撰寫和使用BoneScript程式語言。



01 BoneScript程式語言的介紹