Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Bazaar and Conference 2021 Spring

Android Bazaar and Conference 2021 Spring

2021年6月21日に開催された「Android Bazaar and Conference 2021 Spring」の発表資料です。

発表動画
https://www.youtube.com/watch?v=DfJ5CNdNR3k&t=1715s

ARIYAMA Keiji

June 20, 2021
Tweet

More Decks by ARIYAMA Keiji

Other Decks in Technology

Transcript

  1. ໨࣍ w ͸͡Ίʹ w &YQPTVSF/PUJ fi DBUJPOT"1*ͱ͸ w ઀৮֬ೝΞϓϦʮ$0$0"ʯͷ&YQPTVSF8JOEPXNPEFରԠ w

    9BNBSJO޲͚&/"1*ϥΠϒϥϦ$BQQVDDJOP w &YQPTVSF8JOEPXNPEFҠߦʹ͋ͨͬͯͷ஫ҙ  https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring
  2. C-LIS CO., LTD.  ༗ࢁܓೋʢ"3*:".",FJKJʣ $-*4$0 -5% Photo : Koji

    MORIGUCHI (MORIGCHOWDER) "OESPJEΞϓϦ։ൃνϣοτσΩϧ ػցֶश͸ͪΐͬͱ΍ͬͨ͜ͱ͋Γ·͢ ઀৮֬ೝΞϓϦ$0$0"044ίϥϘϨʔλʔ https://speakerdeck.com/keiji/android-bazaar-and-conference-2021-spring
  3. &YQPTVSF/PUJ fi DBUJPOT"1* &YQPTVSF/PUJ fi DBUJPOTʢ઀৮֬ೝʣ"1*͸ɺεϚʔτϑΥϯͷ#MVFUPPUIΛ ར༻ͯ͠ɺਓͱਓ͕઀৮ͨ͜͠ͱΛݕ஌ɺه࿥͢ΔͨΊͷ࢓૊Έɻ (PPHMFͱ"QQMF͕ڞಉͰ։ൃ͍ͯ͠Δ͜ͱ͔Βɺ("&/ʢ(PPHMF"QQMF &YQPTVSF/PUJ fi

    DBUJPOʣͱݺ͹ΕΔ͜ͱ΋͋Δɻ &YQPTVSF/PUJ fi DBUJPOT"1*ʢ&/"1*ʣΛ࢖ͬͨΞϓϦΛʮ઀৮֬ೝΞϓϦʯ ͱݴ͏ɻ ઀৮֬ೝΞϓϦͷར༻ऀ͸ɺར༻ऀ͕৽ܕίϩφ΢Πϧεʢ$07*%ʣײછ ঱ͷཅੑ͕֬ఆͨ͠ͱ͖ʹɺҰఆظؒ಺ʢײછྗΛ࣋ͭͱ͞ΕΔظؒʣʹ઀৮͠ ͨଞͷ઀৮֬ೝΞϓϦͷར༻ऀʹಗ໊Ͱ௨஌Ͱ͖Δɻ 
  4. 4FSWJDF%BUBηΫγϣϯ  17 16 6f fd 29 ac 0d 91

    7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9 Rolling Proximity Identi fi er 16 bytes Encrypted 
 Metadata 4 bytes Length 1 byte Type 1 byte UUID 1 byte 23 0xfd6f 16 https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-BluetoothSpeci fi cationv1.2.pdf
  5. 3PMMJOH1SPYJNJUZ*EFOUJ fi FSʢ31*ʣ  17 16 6f fd 29 ac

    0d 91 7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9 Rolling Proximity Identi fi er 16 bytes Encrypted fi cation-BluetoothSpeci fi cationv1.2.pdf
  6. 31*͸5&,͔Βੜ੒͞ΕΔ 5FNQPSBSZ&YQPTVSF,FZʢ5&,ʣ Ұఆ࣌ؒͰมߋ͞ΕΔCZUFͷϥϯμϜͳ஋ɻݱࡏͷ࢓༷Ͱ͸࣌ؒʹҰճม ߋ͞ΕΔͨΊɺʮ೔࣍ݤʯͱݺ͹ΕΔ͜ͱ΋͋Δɻ 5&,ͷ༗ޮظؒ i ʹੜ੒͞ΕΔ31*͸ɺ࣍ͷࣜͰද͞ΕΔɻ  TEK →

    RPIͷܭࢉ͸͔ΜͨΜ RPI → TEKΛܭࢉ͢Δͷ͸Ή͔͍ͣ͠ https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-CryptographySpeci fi cationv1.2.pdf RPIKi ← HKDF(teki, NULL, UTF8(“EN-RPIK”), 16) RPIi,j ← AES128(RPIKi, PaddedDataj) ظؒ j ͷ৘ใؚ͕·ΕΔ
  7. "exposure_summary": { "AttenuationDurationsInMinutes": [ 1800, 480, 0 ], "DaysSinceLastExposure": 0,

    "MatchedKeyCount": 2, "MaximumRiskScore": 255, "SummationRiskScore": 54560 }, …  &YQPTVSF4VNNBSZ 
 &YQPTVSF*OGPSNBUJPO https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V1) "exposure_informations": [ { "AttenuationDurationsInMinutes": [ 1436, 0, 0 ], "AttenuationValue": 26, "DateMillisSinceEpoch": 1622851200000, "Duration": 30.0, "TotalRiskScore": 256, "TransmissionRiskLevel": 4 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Legacy-v1)
  8. 

  9. &ODSZQUFE.FUBEBUB  17 16 6f fd 29 ac 0d 91

    7a 59 97 2d 63 cd b2 cd b5 89 17 40 35 f6 0e b9 Rolling Proximity Identi 
 Metadata 4 bytes Length fi cation-BluetoothSpeci fi cationv1.2.pdf
  10. &ODSZQUFE.FUBEBUB  ʠ"TTPDJBUFE&ODSZQUFE.FUBEBUB "&. Š" QSJWBDZQSFTFSWJOHFODSZQUFENFUBEBUBUIBUTIBMM CFVTFEUPDBSSZQSPUPDPMWFSTJPOJOHBOEUSBOTNJU 5Y QPXFSGPSCFUUFSEJTUBODFBQQSPYJNBUJPO 5IF"TTPDJBUFE&ODSZQUFE.FUBEBUBDIBOHFT

    BCPVUFWFSZNJOVUFT BUUIFTBNFDBEFODFBT UIF3PMMJOH1SPYJNJUZ*EFOUJ fi FS UPQSFWFOUXJSFMFTT USBDLJOHPGUIFEFWJDFʡ xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxx xx xx Major Minor 35 f6 0e b9 Reserved 1 byte Transmit power level 1 byte Versioning 1 byte LSB fi rst Reserved 1 byte Decrypt AES-CTR Reserved https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-BluetoothSpeci fi cationv1.2.pdf https://covid19-static.cdn-apple.com/applications/covid19/current/static/contact-tracing/pdf/ExposureNoti fi cation-CryptographySpeci fi cationv1.2.pdf
  11. όʔδϣϯͷมભ "OESPJE v1.5 earlier v1.5 - July 2020 v1.6 -

    August 2020 v1.7 - September 2020 v1.7.2 - October 2020 v1.8 - January 2021  J04 iOS 13.5 - May 2020 iOS 13.6 - July 2020 iOS 13.7 - September 2020 iOS 12.5 - December 2020 iOS 14.4 - January 2021
  12. J04 iOS 13.5 - May 2020 iOS 13.6 - July

    2020 iOS 13.7 - September 2020 iOS 12.5 - December 2020 iOS 14.4 - January 2021 "OESPJE v1.5 earlier v1.5 - July 2020 v1.6 - August 2020 v1.7 - September 2020 v1.7.2 - October 2020 v1.8 - January 2021 ೥݄ͷΞοϓσʔτͰ&YQPTVSF8JOEPX͕ಋೖ  ExposureSummary 
 ExposureInformation DailySummary ExposureWindow
  13. "exposure_summary": { "AttenuationDurationsInMinutes": [ 1800, 480, 0 ], "DaysSinceLastExposure": 0,

    "MatchedKeyCount": 2, "MaximumRiskScore": 255, "SummationRiskScore": 54560 }, …  &YQPTVSF4VNNBSZ 
 &YQPTVSF*OGPSNBUJPO https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V1) "exposure_informations": [ { "AttenuationDurationsInMinutes": [ 1436, 0, 0 ], "AttenuationValue": 26, "DateMillisSinceEpoch": 1622851200000, "Duration": 30.0, "TotalRiskScore": 256, "TransmissionRiskLevel": 4 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Legacy-v1)
  14. "daily_summaries": [ { "DaysSinceEpoch": 1622937600000, "DaySummary": { "MaximumScore": 1860.0, "ScoreSum":

    51660.0, "WeightedDurationSum": 51660.0 }, "ConfirmedClinicalDiagnosisSummary": null, "ConfirmedTestSummary": { "MaximumScore": 1860.0, "ScoreSum": 51660.0, "WeightedDurationSum": 51660.0 }, "RecursiveSummary": null, "SelfReportedSummary": null },  %BJMZ4VNNBSZ 
 &YQPTVSF8JOEPX "exposure_windows": [ { "CalibrationConfidence": 3, "DateMillisSinceEpoch": 1622937600000, "Infectiousness": 1, "ReportType": 1, "ScanInstances": [ { "MinAttenuationDb": 24, "SecondsSinceLastScan": 300, "TypicalAttenuationDb": 25 }, { "MinAttenuationDb": 24, "SecondsSinceLastScan": 240, "TypicalAttenuationDb": 25 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V2) https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Exposure-Window-mode) ؒҧ͍
  15. J04 iOS 13.5 - May 2020 iOS 13.6 - July

    2020 iOS 13.7 - September 2020 iOS 12.5 - December 2020 iOS 14.4 - January 2021 "OESPJE v1.5 earlier v1.5 - July 2020 v1.6 - August 2020 v1.7 - September 2020 v1.7.2 - October 2020 v1.8 - January 2021 ϓϥοτϑΥʔϜͰ"1*ͷݺͼํ͕ҟͳΔ  Version 2 Version 1 ExposureWindow mode Legacy v1 mode
  16. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

    <plist version="1.0"> <dict> <key>com.apple.developer.exposure-notification</key> <true/> <key>com.apple.developer.exposure-notification-test</key> <true/> <key>com.apple.developer.exposure-notification-test-skip-file-verification</key> <true/> </dict> </plist> J04 "QQMF͔ΒೝূΛड͚ͨ։ൃऀΞΧ΢ϯτͰൃߦͨ͠ಛผͳϓϩϏδϣχϯά ϓϩϑΝΠϧΛ࢖͏͜ͱͰσόοάϞʔυΛ༗ޮʹͨ͠ΞϓϦΛΠϯετʔϧ Ͱ͖Δɻ  Entitlements.plist
  17. 4NJUUF4UPQQ͸&YQPTVSF8JOEPXNPEFʹରԠ /V(FUύοέʔδʢ9BNBSJO&YQPTVSF/PUJ fi DBUJPOBMQIBOVQLHʣ ΛϩʔΧϧʹ͍࣋ͬͯΔɻ https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/tree/dev/NDB.Covid19/ TempNugetFeed ΋ͱ΋ͱόοΫάϥ΢ϯυॲཧΛಠ࣮ࣗ૷͢ΔͳͲɺ 9BNBSJO&YQPTVSF/PUJ fi

    DBUJPOʹґଘ͠ͳ͍࢓૊Έʹ͍ͯͨ͠ɻ https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/blob/dev/NDB.Covid19/ NDB.Covid19.iOS/Utils/BackgroundServiceHandler.cs  https://github.com/folkehelseinstituttet/Fhi.Smittestopp.App/issues/223
  18.  "UUFOVBUJPO%VSBUJPO5ISFTIPME "apple_exposure_config_v2": { "attenuation_duration_thresholds": [ 50, 70, 90 ],

    https://developer.apple.com/documentation/exposurenoti fi cation/enexposurecon fi guration ը૾͸Apple DeveloperΑΓҾ༻
  19. "OESPJEͱJ04ͰઃఆՄೳͳ஋ͷൣғ͕ҧ͏ ஋ͷൣғ͕ҟͳΔ߲໨͕͋ΔͷͰ஫ҙ͕ඞཁɻ  "infectiousness_weights": { "High": 1.0, "Standard": 1.0, "None":

    1.0 }, "report_type_weights": { "Con fi rmedClinicalDiagnosis": 1.0, "Con fi rmedTest": 1.0, "SelfReport": 1.0, "Recursive": 1.0, "Revoked": 1.0, "Unknown": 1.0 } "infectiousness_high_weight": 100.0, "infectiousness_standard_weight": 100.0, "report_type_con fi rmed_clinical_diagnosis_weight": 100.0, "report_type_con fi rmed_test_weight": 100.0, "report_type_recursive_weight": 100.0, "report_type_self_reported_weight": 100.0, 100 - 250 (iOS) 1.0 - 2.5 (Android)
  20. "OESPJEͱJ04ͰઃఆՄೳͳ஋ͷൣғ͕ҧ͏ ஋ͷൣғ͕ҟͳΔ߲໨͕͋ΔͷͰ஫ҙ͕ඞཁɻ  "report_type_con fi rmed_clinical_diagnosis_weight": 99.0, "report_type_con fi rmed_test_weight":

    250.0, "report_type_recursive_weight": 251.0, "report_type_self_reported_weight": 1.0, 100 - 250 (iOS) RpTyW { CTest 250, CClin 99, SelfR 1, Recurs 251 }
  21. "daily_summaries": [ { "DaysSinceEpoch": 1622937600000, "DaySummary": { "MaximumScore": 1860.0, "ScoreSum":

    51660.0, "WeightedDurationSum": 51660.0 }, "ConfirmedClinicalDiagnosisSummary": null, "ConfirmedTestSummary": { "MaximumScore": 1860.0, "ScoreSum": 51660.0, "WeightedDurationSum": 51660.0 }, "RecursiveSummary": null, "SelfReportedSummary": null },  %BJMZ4VNNBSZ 
 &YQPTVSF8JOEPX "exposure_windows": [ { "CalibrationConfidence": 3, "DateMillisSinceEpoch": 1622937600000, "Infectiousness": 1, "ReportType": 1, "ScanInstances": [ { "MinAttenuationDb": 24, "SecondsSinceLastScan": 300, "TypicalAttenuationDb": 25 }, { "MinAttenuationDb": 24, "SecondsSinceLastScan": 240, "TypicalAttenuationDb": 25 }, … https://github.com/keiji/chino/wiki/Sample-ExposureData-iOS-(V2) https://github.com/keiji/chino/wiki/Sample-ExposureData-Android-(Exposure-Window-mode) ؒҧ͍