http://www.iqmagazineonline.com/magazine/pdf/v_3_4...

¢£ Why is Security So Important?
¢£ Economic Value in Security Issues
¢£ Open Industry Issues
¢£ The Options for Security
¢£ ARM Approach – The TrustZone Solution

ÁȤ߹þ¤ßÀ¤³¦¤ÎÃæ¤Ç¿®Íê¤Ç¤­¤ë¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¤ò²Äǽ¤Ë¤¹¤ëARM¤Î¥¢¥×¥í¡¼¥Á¤Ï¡¢¥È¥é¥¹¥Æ¥Ã¥É¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î³µÇ°¤Ë´ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£
TrustZone¤Ï¡¢¥»¥­¥å¥¢¤Ê¤È°ì½ï¤Ë¡¢¥³¡¼¥É¤ÎʬΥ¤òÄ󶡤¹¤ë¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ë¥»¥­¥å¥ê¥Æ¥£´Ä¶­¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹
Trusted¥Á¥§¡¼¥óÆâ¤Î¾¤ÎÍ×ÁǤ˴ðËÜŪ¤Ê¥»¥­¥å¥ê¥Æ¥£¥µ¡¼¥Ó¥¹¤È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎξÊý¤òÄ󶡤¹¤ë¥½¥Õ¥È¥¦¥§¥¢¡¢
¥¹¥Þ¡¼¥È¥«¡¼¥É¡¢¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¡¢¤ª¤è¤Ó°ìÈÌŪ¤Ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò´Þ¤à¡£

È󥻥­¥å¥¢"Ä̾ï"¤Î¼Â¹Ô´Ä¶­¡¢¤ª¤è¤Ó¿®Íꤵ¤ì¤ë¡¢Êݾ㤵¤ì¤¿¥»¥­¥å¥¢¤ÊÀ¤³¦¡§TrustZone¤Ï¡¢2¤Ä¤Î¥Ñ¥é¥ì¥ë¼Â¹Ô¤ÎÀ¤³¦¤òʬΥ¤¹¤ë¡£

¢£ Key Benefits of TrustZone (TrustZone¤Ï¤Î¼ç¤ÊÍøÅÀ)
TrustZone¤Ï¡¢³«È¯¼Ô¤È¥¨¥ó¥É¥æ¡¼¥¶¡¼¤Ø¤Î½ÅÍפʵ»½ÑŪ¤ª¤è¤Ó¾¦¶ÈŪ¤Ê¿¤¯¤ÎÍøÅÀ¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤é¤Ï¡¢¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£

¡¦¼ç¤Ë¡¢TrustZone¤Ï¡¢¥Á¥Ã¥×¾å¤Î¥»¥­¥å¥¢¤Ê¥Ç¡¼¥¿¤Î¤¿¤á¤Î°ÂÁ´¤Ê´Ä¶­¤òÄ󶡤·¤Þ¤¹¡£
¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¤Ø¤Î´°Á´¤Ê¥¢¥×¥í¡¼¥Á¤ò²Äǽ¤Ë¤·¤Þ¤¹¡£Î㤨¤Ð¡¢
SoCÆâ¤Ë°ÂÁ´¤ÊÎΰ褬¤¢¤ë¾ì¹ç¤Ï¡¢SoC¤ÎCPU¤ò»ÈÍѤ·¤¿¥»¥­¥å¥¢¤ÊSIM¥«¡¼¥É¤«¤é¥»¥­¥å¥ê¥Æ¥£¤ÇÊݸ¤ì¤¿¥­¡¼¤ò½èÍý¤¹¤ë¤À¤±°ÂÁ´¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¥»¥­¥å¥ê¥Æ¥£¤ÇÊݸ¤ì¤Æ¤¤¤Ê¤¤OS¤Ï¡¢¤³¤ì¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤ÏÉÔ½½Ê¬¤Ç¤¢¤ë¡£

¡¦¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥»¥­¥å¥¢¤Ê¥·¥¹¥Æ¥à¤ÎÌäÂê¤Ç¤¹
Æä˹½À®¤È¤·¤Æ,¥³¥¢¤Î¥×¥í¥»¥Ã¥µ¤È³°Éô¥¹¥È¥¢¤Î´Ö¤Î¥È¥é¥Õ¥£¥Ã¥¯¤Ï°Å¹æ²½¤µ¤ì¤ëɬÍפ¬¤¢¤ë¡£
TrustZone¤Ï¤Ç¡¢´°Á´¤Ê¥Ð¥¹ÂÓ°èÉý¤Î¥¢¥¯¥»¥¹¤¬¹â®¤Ê¥á¥â¥ê¥¢¥¯¥»¥¹Â®ÅÙ¤òÄ󶡤¹¤ë¤¿¤á¤Ë¡¢¤¹¤Ù¤Æ¤Îµ­²±Îΰè¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤µ¤é¤Ë¡¢°ÂÁ´¤Ê¥í¡¼¥«¥ë¥­¥ã¥Ã¥·¥å¤Î¥Ç¡¼¥¿¤Ï¡¢¤µ¤é¤Ë¹â®¤Ê¥¢¥¯¥»¥¹¤òÄ󶡤·¤ÆÉü¹æ²½¤µ¤ì¤¿·Á¼°¤Ç°ÂÁ´¤ËÊݸ¤µ¤ì¤Þ¤¹¡£
°Å¹æ²½¤µ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢È󥻥­¥å¥¢World¤ÈƱ¤¸¥Õ¥é¥Ã¥·¥å¥á¥â¥ê¤ò¥¢¥¯¥»¥¹¤Ç¤­¤Þ¤¹¡£
³Î¼Â¤Ë¡¢°Â²Á¤ÊÂ絬ÌϤǽÀÆð¤Ê¥¹¥È¥ì¡¼¥¸¤¬ÍøÍѤµ¤ì¤ë¡£

¡¦TrustZone¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤È¥Ï¡¼¥É¥¦¥§¥¢Í×ÁǤǹ½À®¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
¤½¤ì¤Ï¡¢¥«¥¹¥¿¥Þ¥¤¥º¤äSoC¤¬´°À®¤·¤¿¸å¤â¡¢¥»¥­¥å¥¢¤Ê¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É¤ò²Äǽ¤Ë¤¹¤ë½ÀÆðÀ­¤òÄ󶡤·¤Þ¤¹¡£

¡¦TrustZone¤Ï¡¢Áȹþ¤ß¥·¥¹¥Æ¥àÆâ¤Ë¥»¥­¥å¥¢¤Êworld¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢¥À¥¤¥ì¥¯¥È¥Ú¥ê¥Õ¥§¥é¥ë¥Á¥ã¥Í¥ë¡¢¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹,SIM¤ª¤è¤Ó¥¹¥Þ¡¼¥È¥«¡¼¥É¤À¤±¤Ç¤Ê¤¯¡¢²»À¼½ÐÎϤâ´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
È󥻥­¥å¥¢world¤Î¤¿¤á¡¢TrustZone¤Ï¡¢SoC¥Ç¥Ð¥¤¥¹Æâ¤Î¤¹¤Ù¤Æ¤Îµ¡Ç½À°¹çÀ­¥Á¥§¥Ã¥¯¤ò»ÈÍѤ·¤Æ¥»¥­¥å¥ê¥Æ¥£¤òÍ­¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
Î㤨¤Ð¡¢¥Ç¥³¡¼¥É¤µ¤ì¤¿DRM¤Î¥ª¡¼¥Ç¥£¥ª¤Ï¡¢È󥻥­¥å¥¢¥ª¡¼¥Ç¥£¥ª¥É¥é¥¤¥Ð¤ËÅϤµ¤ì¤ëºÝ¡¢¤½¤ì¤ÏOS¤Î¥¤¥ó¥Õ¥é¤Î´ØÏ¢Éôʬ¤òÀ°¹çÀ­¥Á¥§¥Ã¥¯¤Ë¤è¤ê¡¢Êݸ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¢£ TrustZone Reduces Development Risk and Cost (TrustZone¤Ï¡¢³«È¯¥ê¥¹¥¯¤È¥³¥¹¥È¤òºï¸º)

¢£ TrustZone as a Trusted Execution Environment (¿®Íꤵ¤ì¤¿¼Â¹Ô´Ä¶­¤È¤·¤Æ¤ÎTrustZone)

¢£ TrustZone Operation
¢£ Industry Standards Collaboration
¢£ TrustZone Software Elements

•TrustZone Generic API
¤Ï¡¢Ã±½ã¤Ê¥á¥Ã¥»¡¼¥¸¥Ñ¥Ã¥·¥ó¥°¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÄ󶡤·¤Þ¤¹¡£
¤½¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¤Î¶­³¦¤ò±Û¤¨¤ÆÄã¥ì¥Ù¥ë¤ÎÄÌ¿®¤ò²Äǽ¤Ë¤¹¤ë¤¿¤á¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£

•TrustZone Security Channel API
¤Ï¡¢TrustZone¤Ï¥»¥­¥å¥ê¥Æ¥£¾å¤Î¾ãÊɤÎÇظå¤Ë¤¢¤ëcommonlyavailable¥»¥­¥å¥ê¥Æ¥£µ¡Ç½¤Ø¤Î
¥¢¥¯¥»¥¹¤òµö²Ä¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤¿¡¢¤è¤ê¶ÛÌ©¤ËÄêµÁ¤µ¤ì¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎAPI¤Ç¤¹¡£
¤³¤ÎAPI¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£¥â¥¸¥å¡¼¥ë¤Î¥¿¥¹¥¯¤ËŬ¤·¤¿Æȼ«¤Î³ÈÄ¥µ¡Ç½¤ò³ÈÄ¥¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥»¥­¥å¥ê¥Æ¥£¥â¥¸¥å¡¼¥ëÆâ¤Çºî¶È¤¹¤ë³«È¯¼Ô¤Î¤¿¤á¤Ë¡¢¤µ¤é¤Ë2¤Ä¤ÎAPI¤¬ÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡§

• The Security Module Internal API
• The Security Module HAL API

¤³¤ì¤é¤Ï¡¢µö²Ä¤¹¤ë¤è¤¦¤Ë¥»¥­¥å¥ê¥Æ¥£¥â¥¸¥å¡¼¥ë¤ÎÆâÉôÆ°ºî¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤¹¤ë´Ø¿ô¸ÇÍ­¤Î³«È¯¤Þ¤¿¤Ï°Ü¿¢
¥É¥é¥¤¥Ð¤ä¥¿¥¹¥¯¤Î¥â¥¸¥å¡¼¥ë¡£
¤³¤ì¤Ï¡¢¥ê¥¢¥ë¥¿¥¤¥à¤ÎDRM¥³¡¼¥Ç¥Ã¥¯¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹
Æȼ«¤Î°Å¹æ²½¥×¥í¥È¥³¥ë¤È¡¢Æȼ«¤Î¥»¥­¥å¥¢¤ÊÄÌ¿®¥×¥í¥È¥³¥ë¡£

¢£ Enabling Secure-Aware Applications

¥»¥­¥å¥¢Âбþ¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÍ­¸ú²½¤ÎTrustZone´Ä¶­¤Ï¡¢Ê£»¨¤ÊÁȹþ¤ß¥·¥¹¥Æ¥àÆâ¤Î¿¤¯¤Î¥ì¥Ù¥ë¤ÇŬÍѤµ¤ì¤ë¥»¥­¥å¥ê¥Æ¥£Âкö¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

È󥻥­¥å¥¢¤ÊÁàºî¤Ï¡¢TrustZone¤«¤é¤Î½õ¤±¤Ê¤·¤Ç¡¢OSÆâ¤Ë´°Á´¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
OS¤Ï¡¢¥»¥­¥å¥ê¥Æ¥£Ç§¾Úµ¡´Ø¤Î´ð½à¤Ë´°Á´¤ÊOS¤òÊݸ¤ë¡¢Æȼ«¤Î¥»¥­¥å¥ê¥Æ¥£Âкö¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¸½¼ÂŪ¤Ç¤Ï¤Ê¤¤¤³¤È¤¬¤Ç¤­¤ë¡£
OSÆâ¤Î¥»¥­¥å¥ê¥Æ¥£¤òÍ­¸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢
TrustZone¤Ï¡¢»°¤Ä¤ÎÊýË¡¤Ç¤Î¹¶·â¤ËÂФ·¤ÆÀ°¹çÀ­¥Á¥§¥Ã¥¯¤òÄ󶡤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
ºÇ½é¤Ë¡¢TrustZone¤Ï¡¢OS¤¬µ¯Æ°¤¹¤ëÁ°¤ËÊѹ¹¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ò³Îǧ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¼Â¹Ô»þ¤Ë¤Ï¡¢TrustZone¤Ï¡¢¥¯¥ê¥Æ¥£¥«¥ë¥Ñ¥¹¤¬ÊÑ´¹¤µ¤ì¤Ê¤¤¤Ç¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
ºÇ¸å¤Ë¡¢¾µÇ§µ¡Ç½¤ÎÀ©¸Â¤µ¤ì¤¿¥»¥Ã¥È¤Ï¡¢TrustZone¤ÏÆâ¤Ç°ÂÁ´¤Ë¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ - ¥á¥¤¥ó¤ÎOS¤«¤é¥ê¥â¡¼¥È¥×¥é¥¤¥Ù¡¼¥È¥¹¥Ú¡¼¥¹¤ò¡£

¡ù ÅÓÃæ¤Þ¤Ç


¢£ Designing with TrustZone Technology

Êݸ¤ì¤¿¥·¥¹¥Æ¥à¤ÎÀ߷פϡ¢¥»¥­¥å¥ê¥Æ¥£¾å¤ÎÌäÂê¤Ï¡¢³«È¯¥×¥í¥»¥¹Ãæ¤ËÊݸ¤ì¤¿¥³¡¼¥É¤ÎÀ©¸æ¤Ø¤Î±Æ¶Á¤ò´Þ¤á¡¢ºÇ½é¤«¤é¹Í褵¤ì¤ë¤è¤¦¤Ë¥¢¥×¥í¡¼¥Á¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

½ÅÍפÊÌäÂê¤Ï¡¢À߷פËÃå¼ê¤¹¤ëÁ°¤ËÂн褹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹
¥Ç¥¶¥¤¥ó¥Á¥§¡¼¥ó¤ÎÍ×ÁǤò»ØÄꤹ¤ë¤¿¤á¤Ë¡¢
¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢¥½¥ê¥å¡¼¥·¥ç¥óÁ´ÂΤòÍ­¸ú¤Ë¤¹¤ë
¤ÈÀøºßŪ¤Ê¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Î·èÄê¤È¤Î¥È¥ì¡¼¥É¥ª¥Õ¡£

¡û¥»¥­¥å¥ê¥Æ¥£¤Î¥ì¥Ù¥ë¤Ï¤É¤ÎÄøÅÙɬÍפǤ¹¤«¡©
•´°Á´¥ª¥ó¥Á¥Ã¥×SoC
•¥ª¥ó¥Á¥Ã¥×SoC¤¬offchip¤ÎSoC¤«¤é¤Î½ð̾¤µ¤ì¤¿¥³¡¼¥É
•¥½¥Õ¥È¥¦¥§¥¢¤Î¤ß¤ÎÊݸî¤Î¤Ç¡¢´°Á´¤Ë¥ª¥Õ¥Á¥Ã¥×SoC¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹

¡û¤É¤Î¤è¤¦¤ËÊݸ¤ì¤¿¥³¡¼¥É¤Î³«È¯¤òÀ©¸æ¤¹¤ë¤Î¤Ç¤¹¤«¡©
•Ã¯¤¬¾å¤Ç¡¢SoC¤Î¥Þ¥¹¥¿¡¼¥­¡¼¤òÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡©
•Ã¯¤¬¡¢¥ª¥ó¥Á¥Ã¥×SoC¤Î¥Ö¡¼¥È¥³¡¼¥É¤ò¥ª¡¼¥µ¥ê¥ó¥°¤¹¤ë¡©
•¤½¤Î¾¤Î¸°´ÉÍý¤¬¤ÎTrustZone¥»¥­¥å¥ê¥Æ¥£¥Ð¥ê¥¢¤ÎÇظå¤ÇÆ°ºî¤·¤Æ¿®Íê¤Ç¤­¤ë³«È¯¼Ô¤Î¤¿¤á¤ËɬÍפʤâ¤Î

¾¤Î¶È³¦¤ÎÃÎŪºâ»º¡¢¤Þ¤¿¤ÏÆȼ«¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï¡¢ÆÃÄê¤Î¼ÂÁõ¤òËþ¤¿¤¹¤¿¤á¤ËɬÍפȤʤë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤Ï¡¢DRM IP¡¢¥ª¥ó¥Á¥Ã¥×ROM¤ä°Å¹æ²½¥¢¥¯¥»¥é¥ì¡¼¥¿¤Î¤è¤¦¤Ê¾¤Î¥ª¥Õ¥Á¥Ã¥×¤Î¥»¥­¥å¥ê¥Æ¥£¥ê¥½¡¼¥¹¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£

¤É¤ó¤ÊÊ£»¨¤ÊSoC¤ÎÀ߷פÈƱÍͤˡ¢¤¢¤ë
·úÃۥѥé¥á¡¼¥¿¤È¥Ï¡¼¥É¥¦¥§¥¢¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¥È¥ì¡¼¥É¥ª¥Õ¤¬¹Ô¤ï¤ì¤ë¡£¤³¤ì¤é¤Ï¡¢
¥»¥­¥å¥ê¥Æ¥£Í×·ï¤Ë¤è¤Ã¤Æ·èÄꤵ¤ì¤ë¡¢
Î㤨¤Ð¡§

¡û¥ª¥ó¥Á¥Ã¥×RAM¤Ï¹â²Á¤Ç¤¹¡£
•¼ç¤Ê´Ø¿´»ö¤Ï¡¢¥½¥Õ¥È¥¦¥§¥¢¤Î¹¶·â¤Î¾ì¹ç¡¢¥ª¥Õ¥Á¥Ã¥×¼Â¹Ô¤¬µöÍÆÍ¿¤¨¤é¤ì¤¿Å¬Àڤʥá¥â¥ê¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥Ë¥ó¥°¤Ç¤¹¡£

¡û¥ª¥ó¥Á¥Ã¥×¤ÎROM¤Ë¤Ï½ÀÆðÀ­¤Ç¤¹¡£
•Êݸ¤ì¤¿RAM¤Ë¥³¡¼¥É¤ò¥í¡¼¥É¤¹¤ëµ¡Ç½¤ò¹Íθ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹
•¤³¤Î¤è¤¦¤Ê¥³¡¼¥É¤¬¾µÇ§¤µ¤ì¡¢½ð̾/²¿¤é¤«¤ÎÊýË¡¤Ç¥Á¥§¥Ã¥¯¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡û¥»¥­¥å¥ê¥Æ¥£¤ÇÊݸ¤ì¤¿¼þÊÕµ¡´ï¤ÏÊݸ¤ì¤¿¶õ´Ö¤Ç¤Î¥É¥é¥¤¥Ð¡¼¤Î¤¿¤á¤Ë³ÈÄ¥¥³¡¼¥É¤ò°ÕÌ£¤¹¤ë¡£

°ìÈÌŪ¤Ë;ʬ¤Ê¥³¡¼¥É¤Ï²Äǽ¤Ê¸Â¤êÈò¤±¤ë¤Ù¤­¤Ç¤¹¤¬¡¢¤½¤ì¤òÄɲ乤ëɬÍפ¬¤¢¤ë¾ì¹ç¡¢3¤Ä¤Î¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£

¡û¼þÊÕµ¡´ï¤Î¥É¥é¥¤¥Ð¥³¡¼¥É¤Ï¡¢È󥻥­¥å¥¢¤ÊOS¤«¤é¥»¥­¥å¥¢¤ÊÎΰè¤ËžÁ÷¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹
¤È°ÂÁ´¤Ê¥É¥é¥¤¥Ð¤ÈÄÌ¿®¤¹¤ëÈ󥻥­¥å¥¢À¤³¦¤ËÇÛÃÖ¤µ¤ì¤¿¥·¥ó¥×¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¥É¥é¥¤¥Ð¡£

¡û¥³¡¼¥É¤ÏÆó¤Ä¤ÎÀ¤³¦¤È¥ê¥½¡¼¥¹¤ÎÀ©¸æ¤Î¤¿¤á¤ËÇÛÃÖ¤µ¤ì¤¿¥Ï¥ó¥É¥·¥§¥¤¥¯¤Î¥·¥¹¥Æ¥à´Ö¤ÇÊ£À½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡û³ä¤ê¹þ¤ßÀ¸À®¤Î¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢Î㤨¤Ð¥­¡¼¥Ü¡¼¥É¤Î¤¿¤á¤Ë¡¢³ä¤ê¹þ¤ß¤¬°ÂÁ´¤ÊÀ¤³¦¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¤³¤ì¤Ï¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¥»¥­¥å¥ê¥Æ¥£¤ÇÊݸ¤ì¤Æ¤¤¤Ê¤¤¥É¥é¥¤¥Ð¤ò°ú¤­µ¯¤³¤¹¤Î¤Ç¡¢¥Ï¥ó¥É¥ª¡¼¥Ð¤ÏÆ©²áŪ¤Ç¤¹¡£

¡ù ÅÓÃæ¤Þ¤Ç


¢£ Secure Debug
¢£ TrustZone Product Configuration
¢£ TrustZone: Enabling Platform Integrity and Application Security







-------------------- ¢£ TrustZone

[TrustZone Software API Specification 3.0]
https://silver.arm.com/browse/BX011-DA-10026
https://silver.arm.com/download/Software/BX011-DA-...

[TrustZone: Integrated Hardware and Software Security]
http://www.iqmagazineonline.com/magazine/pdf/v_3_4...



---------------------------------------------------
--- ¢£ Recovery¥â¡¼¥É¤«¤é/systemÎΰè¤Ø¤Î¥¢¥¯¥»¥¹ÊýË¡¡ÊDesire¡§Í×root¡Ë
http://jigen3.wordpress.com/2010/10/24/recovery%E3...

http://acc.komugi.net/?%E3%83%84%E3%83%BC%E3%83%AB...

¢£ Nexus S¤Îroot¼èÆÀ ¤½¤Î2 (clockworkMod RecoveryƳÆþ¡Ároot¼èÆÀ¤Þ¤Ç?)
http://d.hatena.ne.jp/Kazzz/20110109/p1




¢£ property ¾ðÊó¤Ë¤Ä¤¤¤Æ

/bionic/libc/include/sys/_system_properties.h
#define PROP_PATH_RAMDISK_DEFAULT  "/default.prop"
#define PROP_PATH_SYSTEM_BUILD     "/system/build.prop"
#define PROP_PATH_SYSTEM_DEFAULT   "/system/default.prop"
#define PROP_PATH_LOCAL_OVERRIDE   "/data/local.prop"
Æɤ߹þ¤ß²Õ½ê¤Ï¡£¡£
property_init
init_property_area(); load_properties_from_file(PROP_PATH_RAMDISK_DEFAULT); load_properties(data);
static void load_properties(char *data)
{
    char *key, *value, *eol, *sol, *tmp;

    sol = data;
    while((eol = strchr(sol, '\n'))) {
        key = sol;
        *eol++ = 0;
        sol = eol;

        value = strchr(key, '=');
        if(value == 0) continue;
        *value++ = 0;

        while(isspace(*key)) key++;
        if(*key == '#') continue;
        tmp = value - 2;
        while((tmp > key) && isspace(*tmp)) *tmp-- = 0;

        while(isspace(*value)) value++;
        tmp = eol - 2;
        while((tmp > value) && isspace(*tmp)) *tmp-- = 0;

        property_set(key, value);
    }
}

¢£ Android.mk
ifneq ($(TARGET_SIMULATOR),true)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := inotify_test.c inotify_utils.c event_queue.c
LOCAL_SHARED_LIBRARIES := libcutils
#LOCAL_C_INCLUDES := 
LOCAL_CFLAGS := -DANDROID_CHANGES

LOCAL_MODULE := testd
LOCAL_MODULE_TAGS := eng

include $(BUILD_EXECUTABLE)

endif

¢£ inotify(android°Ü¿¢)
Android.mk(25): LOCAL_CFLAGS := -DANDROID_CHANGES

inotify_test.c(74): #ifdef ANDROID_CHANGES
#ifdef ANDROID_CHANGES
	  wd = watch_dir (inotify_fd, "/system", IN_ALL_EVENTS);
	  wd = watch_dir (inotify_fd, "/default.prop", IN_ALL_EVENTS);
	  wd = watch_dir (inotify_fd, "/proc/mounts", IN_ALL_EVENTS);
#else
      for (index = 1; (index < argc) && (wd >= 0); index++) 
	{
	  wd = watch_dir (inotify_fd, argv[index], IN_ALL_EVENTS);
	  /*wd = watch_dir (inotify_fd, argv[index], IN_ALL_EVENTS & ~(IN_CLOSE | IN_OPEN) ); */
	}
#endif

inotify_utils.c(11): #ifdef ANDROID_CHANGES
#ifdef ANDROID_CHANGES
#include <android/log.h>
#endif

inotify_utils.c(21): #ifdef ANDROID_CHANGES
inotify_utils.c(26): #ifdef ANDROID_CHANGES
#ifdef ANDROID_CHANGES
/* Android Log Wrapper */
void log_print(int level, char *format, ...)
{
    if (level >= 0 && level <= 4) {
#ifdef ANDROID_CHANGES
        static int levels[5] = {
            ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, ANDROID_LOG_WARN,
            ANDROID_LOG_ERROR, ANDROID_LOG_FATAL
        };
        va_list ap;
        va_start(ap, format);
        __android_log_vprint(levels[level], "testd", format, ap);
        va_end(ap);
#else
        static char *levels = "DIWEF";
        va_list ap;
        fprint_f(stderr, "%c: ", levels[level]);
        va_start(ap, format);
        vfprint_f(stderr, format, ap);
        va_end(ap);
        fputc('\n', stderr);
#endif
    }
}
#endif

inotify_utils.h(15): #ifdef ANDROID_CHANGES
#ifdef ANDROID_CHANGES
void log_print(int level, char *format, ...);

#define PRINTF(...)   log_print(1,__VA_ARGS__)
#define PERROR(...)   log_print(3,__VA_ARGS__)
#endif

¢£ Kernel Build
export ARCH=arm
export CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
make goldfish_defconfig
make menuconfig
make -j4 2>&1 |tee make.log

¢£ ½¤ÀµKernel¤òEmulator¤Çµ¯Æ°
emulator -sysdir ~/android/SDK/android-sdk-linux_x86/add-ons/Test_2_3_3/images -kernel ~/android/kernel/common/arch/arm/boot/zImage -data ~/android/SDK/android-sdk-linux_x86/add-ons/Test_2_3_3/images/userdata.img -noaudio -skindir ~/android/SDK/android-sdk-linux_x86/platforms/android-10/skins -skin HVGA -show-kernel
¢¨ -kernel ¤Ç kernel ¥Ó¥ë¥É¤ÇÀ¸À®¤·¤¿ zImage ¤ò»ØÄꤹ¤ë¡£
¢¨ -show-kernel¤ò¤Ä¤±¤ë¤È emulator ¤òµ¯Æ°¤·¤¿¥³¥ó¥½¡¼¥ë¤Ç kernel¤Î¥í¥°(printk)¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£

¢£ eCryptfs Build Option

KERNEL BUILD OPTIONS
 Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers   ¡úTop¥ì¥Ù¥ë¤Ë¸ºß¤·¤Þ¤¹¡£
 Security options  --->
    <M> Enable access key retention support       ¡ú[*] ([M]ÁªÂòÉÔ²Ä)
 Cryptographic options  --->
    <M>   MD5 digest algorithm                    ¡údefault [*]
    <M>   AES cipher algorithms                   ¡ú[*] ([M]ÁªÂòÉÔ²Ä) 
 File systems  --->
    Miscellaneous filesystems  --->
      <M> eCrypt filesystem layer support (EXPERIMENTAL)  ¡ú[*] ([M]ÁªÂòÉÔ²Ä)

¢¨¤Ê¤ª¡¢[M]ÁªÂòÉԲĤʤΤϡ¢Enable loadable module support ¤òÍ­¸ú¤Ë¤·¤Æ¤¤¤Ê¤¤¤¿¤á¡£

-
¢£ Android OS ¥Ó¥ë¥É
cd mydroid/
source build/envsetup.sh
lunch 1
make

¢£ Android ´Ä¶­¥á¥â
[copyimg.sh]
#!/bin/bash

ANDROID_SDK_PATH=~/android/SDK/android-sdk-linux_x86
ADD_ON_IMAGE_PATH=$ANDROID_SDK_PATH/add-ons/Test_2_3_3/images

# backup img file
mv $ADD_ON_IMAGE_PATH/system.img $ADD_ON_IMAGE_PATH/system.img.bak
mv $ADD_ON_IMAGE_PATH/userdata.img $ADD_ON_IMAGE_PATH/userdata.img.bak
mv $ADD_ON_IMAGE_PATH/ramdisk.img $ADD_ON_IMAGE_PATH/ramdisk.img.bak

# copy new img file
cp ./system.img $ADD_ON_IMAGE_PATH/system.img
cp ./userdata.img $ADD_ON_IMAGE_PATH/userdata.img
cp ./ramdisk.img $ADD_ON_IMAGE_PATH/ramdisk.img

[ºîÀ®¤·¤¿img¤Çµ¯Æ°¤µ¤»¤ëºÝ¤ÎÃí°ÕÅÀ]
1.~/.android/avd/Test_2_3_3.avd/config.ini ¤ÎÀßÄê
---
image.sysdir.2=add-ons/Test_2_3_3/images/ ¡ú¤³¤³¤¬SDKÇÛ²¼¤Î¥Ç¥Õ¥©¥ë¥È¥Ñ¥¹¤ò¸«¤Ë¹Ô¤¯¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢½¤Àµ¡£
image.sysdir.1=add-ons/Test_2_3_3/images/
---
2.add-ons/Test_2_3_3/images ÇÛ²¼¤ËKernel ¥¤¥á¡¼¥¸¤òÇÛÃÖ

¾åµ­2¤Ä¤òÂбþ¤¹¤ë¤È¡¢½¤Àµ¤·¤¿img ¤Çµ¯Æ°¤¬²Äǽ


-------------------------- GPL »²¹Í¾ðÊó

¡û GPL¥½¥Õ¥È¥¦¥¨¥¢¤Î¾¦ÍÑÍøÍѡʼÒÆâ¡¢³°ÈΡË
http://oshiete.goo.ne.jp/qa/6562626.html

¡û LAME¤Î¥½¡¼¥¹¥³¡¼¥ÉÅðÍѵ¿ÏÇ
http://plasticdreams.tm.land.to/sonyrootkit/?LAME%...
LAME¤¬¥é¥¤¥Ö¥é¥ê¤ò¸ø³«(ÈÎÇäor¥Õ¥ê¡¼¤Ç²òÊü)¤·¤Æ¤Ê¤¤¤Î¤Ê¤éÅðÍѳÎÄê¤Ç¤¹

LAME¥é¥¤¥Ö¥é¥ê¤Ï¡¢LGPL¡£
¤Þ¤º¡¢Á°ÄóÃμ±¤È¤·¤Æ¡¢¡Ö¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯¡×¤È¡Ö¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥¯¡×¤Î°ã¤¤¤òÍý²ò¤·¤ÆÍߤ·¤¤¡£

¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯=¥½¡¼¥¹¤¬exe¤ÎÃæ¤Î¿Í¤Ë¤Ê¤ë =Àµ¼Ò°÷¤ß¤¿¤¤¤Ê¤â¤ó
¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥¯=¥½¡¼¥¹¤¬exe¤ÎÃæ¤Î¿Í¤Ë¤Ê¤é¤Ê¤¤=³°Ãí¤ß¤¿¤¤¤Ê¤â¤ó
¤Ç¡¢¤½¤Î¾å¤Ç¡¢GPL¤ÈLGPL¤Î°ã¤¤¤Ï¡¢

GPL:¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯¤Ç¤â¡¢¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥¯¤Ç¤â¡¢ Á´ÂΤΥ½¡¼¥¹¥³¡¼¥É¤Î¸ø³«µÁ̳(GPL·Ñ¾µµÁ̳)ȯÀ¸
LGPL:¥¹¥¿¥Æ¥£¥Ã¥¯¥ê¥ó¥¯¤Ê¤éÁ´ÂΤΥ½¡¼¥¹¸ø³«µÁ̳¤ª¤è¤ÓLGPL·Ñ¾µµÁ̳¤¬È¯À¸¡£¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥¯¤Ê¤é¡¢ËÜÂΤΥ½¡¼¥¹¸ø³«µÁ̳¤Ê¤·¡£LGPLŬÍѵÁ̳¤Ê¤·¡£

¥é¥¤¥Ö¥é¥ê¦¤Ë¤Ï¡¢¥½¡¼¥¹¸ø³«µÁ̳¤¢¤ê¡£LGPLŬÍѵÁ̳¤¢¤ê¡£
º£²ó¤ÎSONY¤Ï¡¢LGPL¥³¡¼¥É¤ò¡¢DLL(³°Ãí)¤Ç¤Ï¤Ê¤¯¡¢¡Öexe¤ÎÃæ¤Î¿Í¡×¤Ë¤·¤¿¡£¤è¤Ã¤Æ¡¢¡ÖÁ´ÂΤΥ½¡¼¥¹¥³¡¼¥É¸ø³«µÁ̳¡×¤¬È¯À¸¤¹¤ë¤·¡¢¡ÖLGPL¤òŬÍѤ·¤Æ¤¤¤ë¡×Àë¸À¤ä³Æ¼ïµöÂú¾ò¹à¤Ë½¾¤¦É¬Íפ¬¤¢¤ë¡£


¢£ Log»²¹Í¾ðÊó
/system/core/liblog/logprint.c
    /*
     * Get the current date/time in pretty form
     *
     * It's often useful when examining a log with "less" to jump to
     * a specific point in the file by searching for the date/time stamp.
     * For this reason it's very annoying to have regexp meta characters
     * in the time stamp.  Don't use forward slashes, parenthesis,
     * brackets, asterisks, or other special chars here.
     */
#if defined(HAVE_LOCALTIME_R)
    ptm = localtime_r(&(entry->tv_sec), &tmBuf);
#else
    ptm = localtime(&(entry->tv_sec));
#endif
    //strftime(timeBuf, sizeof(timeBuf), "%Y-%m-%d %H:%M:%S", ptm);
    strftime(timeBuf, sizeof(timeBuf), "%m-%d %H:%M:%S", ptm);

¤³¤Î¥Ú¡¼¥¸¤Ø¤Î¥³¥á¥ó¥È

IqOLGv Thanks-a-mundo for the article.Really looking forward to read more. Fantastic.

0
Posted by check it out 2014ǯ01·î22Æü(¿å) 16:20:28 ÊÖ¿®

jLPLcw Thanks for sharing, this is a fantastic blog post.Really thank you!

0
Posted by check it out 2014ǯ01·î21Æü(²Ð) 09:49:25 ÊÖ¿®

hi
http://www.konosuke-matusita.com/
http://www.mbldaypassdeals.com/
http://www.erven-voor-ontwikkeling.com/
http://www.bossen-van-bezinning.com/
http://www.rustandbonescreenplay.com/
http://www.vivesolutionsinc.com/
http://www.darinkamontano.com/
http://www.awfmmellowtouch.net/
Cheap Canada Goose Jackets clearance sale &amp; Winter Parka outlet shop http://www.darinkamontano.com/

0
Posted by Cheap Canada Goose Jackets clearance sale &amp; Winter Parka outlet shop 2013ǯ12·î25Æü(¿å) 11:36:05 ÊÖ¿®

Hello
http://www.darinkamontano.com/
http://www.awfmmellowtouch.net/
http://www.rajasthantour-travels.com/
canada goose jacket http://www.awfmmellowtouch.net/

0
Posted by canada goose jacket 2013ǯ12·î22Æü(Æü) 21:22:25 ÊÖ¿®

Gvt9iF <a href="http://vrpihvoamrke.com/">vrpihvoamrke</a>, [url=http://xffemdjjronh.com/]xffemdjjronh[/url], [link=http://dpmucmgntzlv.com/]dpmucmgntzlv[/link], http://sursintzhuit.com/

0
Posted by ckxefgq 2013ǯ11·î21Æü(ÌÚ) 22:46:37 ÊÖ¿®

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

ÊÔ½¸¤Ë¤ÏID¤¬É¬ÍפǤ¹