【Android】Project Mainline(Google Play システムアップデート)を調べてみる
Android 10 から導入された Project Mainline(Google Play システムアップデート)。
従来からある システムアップデート の違いは下記の通り。
端末メーカーではなく Google がアップデートを配信する
→メーカーによるセキュリティ格差が少なくなる特定のモジュールのみアップデートされる
→OSのバージョンアップは出来ない
→全ての脆弱性をアップデートできる訳ではない
端末メーカーが配信する システムアップデート には到底及ばないが、ある程度のセキュリティは確保できる。
では具体的にアップデート対象となるモジュールは何か。
Android のサイトに具体的なモジュールが掲載されている。
下記表はサイトより転載したもの。
Type にある APEX は、Android 10 より導入されたファイルフォーマット。
詳細はここに記載されている。
Project Mainline のために用意したものではないかと思う。
Module name | Package name | Type | Release introduced |
---|---|---|---|
adbd | com.google.android.adbd | APEX | Android 11 |
Runtime | com.android.runtime.release.apex | APEX | Android 10 |
Captive Portal Login | com.android.captiveportallogin | APK | Android 10 |
CellBroadcast | com.google.android.cellbroadcast | APEX | Android 11 |
Conscrypt | com.android.conscrypt | APEX | Android 10 |
DNS Resolver | com.android.resolv | APEX | Android 10 |
DocumentsUI | com.android.documentsui | APK | Android 10 |
ExtServices | com.android.ext.services | APK (Android 10) APEX (Android 11) | Android 10 |
IPsec/IKEv2 Library | com.google.android.ipsec | APEX | Android 11 |
Media Codecs | com.android.media.swcodec | APEX | Android 10 |
Media | com.android.media | APEX | Android 10 (extractors, MediaSession API) , Android 11 (MediaParser API) |
MediaProvider | com.google.android.mediaprovider | APEX | Android 11 |
ModuleMetadata | com.android.modulemetadata | APK | Android 10 |
Network Stack Permission Configuration | com.android.networkstack.permissionconfig | APK | Android 10 |
Network Components | com.android.networkstack | APK | Android 10 |
NNAPI Runtime | com.google.android.neuralnetworks | APK | Android 11 |
PermissionController | com.android.permissioncontroller | APK | Android 10 |
SDK Extensions | com.android.sdkext | APEX | Android 11 |
Statsd | com.google.android.os.statsd | APEX | Android 11 |
Telemetry Train Version Package | com.google.mainline.telemetry | APEX | Android 11 |
Tethering | com.google.android.tethering | APK | Android 11 |
Time Zone Data | com.android.tzdata | APEX | Android 10 |
Wi-Fi | com.google.android.wifi.apex | APEX | Android 11 |
システムアップデートとProject Mainline(Google Play システムアップデート)の具体的な違い
2020年11月のセキュリティアップデート内容で比較してみる。
システムアップデート
- Android runtime
CVE | References | Type | Severity | Updated AOSP versions |
---|---|---|---|---|
CVE-2020-0409 | A-156997193 | EoP | High | 8.0, 8.1, 9, 10 |
- Framework
CVE | References | Type | Severity | Updated AOSP versions |
---|---|---|---|---|
CVE-2020-0441 | A-158304295 | DoS | Critical | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0442 | A-147358092 | DoS | Critical | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0418 | A-153879813 | EoP | High | 10 |
CVE-2020-0439 | A-140256621 [2] | EoP | High | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0454 | A-161370134 [2] | ID | High | 9 |
CVE-2020-0443 | A-152410253 | DoS | High | 8.0, 8.1, 9, 10, 11 |
- Media Framework
CVE | References | Type | Severity | Updated AOSP versions |
---|---|---|---|---|
CVE-2020-0451 | A-158762825 | ID | High | 10, 11 |
RCE | Critical | 8.0, 8.1, 9 | ||
CVE-2020-0452 | A-159625731 | RCE | High | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0438 | A-161812320 | EoP | High | 11 |
EoP | Moderate | 10 |
- System
CVE | References | Type | Severity | Updated AOSP versions |
---|---|---|---|---|
CVE-2020-0449 | A-162497143 | RCE | Critical | 8.0, 8.1, 9, 10, 11 |
CVE-2020-12856 | A-157038281 [2] [3] [4] | EoP | High | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0424 | A-161362564 | ID | High | 9, 10, 11 |
CVE-2020-0448 | A-153995334 | ID | High | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0450 | A-157650336 | ID | High | 8.0, 8.1, 9, 10, 11 |
CVE-2020-0453 | A-159060474 | ID | High | 8.0, 8.1, 9 |
CVE-2020-0437 | A-162741784 | DoS | High | 8.0, 8.1, 9, 10, 11 |
Project Mainline(Google Play システムアップデート)
一方、Google Play システムアップデート での配信は下記脆弱性のみ
- Google Play system updates
Component | CVE |
---|---|
Permission Controller | CVE-2020-0418 |
Media Codecs | CVE-2020-0451 |
DNS Resolver | CVE-2020-0424 |
【Windows 8.1】【EMET】Excel 2016 が突然起動しなくなった
Excel 2016 を起動しようとしたら、いつものスプラッシュウィンドウが表示されない。
もう一度起動を試みるも症状は変わらない。
仕方ないので再起動してみるが、それでも変わらず。
タスクマネージャーでプロセスを表示してみると Excel は CPU をゴリゴリ使用し続けている。
Office2016 の修復を行ってみたが、症状は変わらない。
最後にダメもとで EMET の設定を変更してみる。
タスクバーにある(隠れている) EMET のアイコンを右クリックし、「Open EMET」を左クリックする
「次のプログラムにこのコンピュータへの変更を許可しますか?」ダイアログが出るので「はい」を選択する
EMET のウィンドウが表示されたら、画面上部にある「Apps」アイコンをクリックする
アプリ一覧が表示されるので、「App Name」欄の中から「EXCEL.EXE」を探す
EXCEL.EXE を Disable All Mitigations (保護無効化)してみる
→何事も無く起動するようになった
このままでも良いが保護機能が働くなってしまうので、問題点を絞ってみる具体的にどの Mitigation で問題が発生しているのか個別に調べてみる
→"SimExecFlow" を ON にすると起動しなくなることが分かった
※それ以外の Mitigations は有効化しておいて問題無い
今回の問題は、Office の更新プログラムが自動適用されたことにより生じたと思われる。
なかなか、厄介な問題だ。
バージョン情報
- Excel 2016 (16.0.13426.20270) 32bit
- EMET "5.52.6156.38091"
【Android 11】システムフォント に バリアブルフォント が追加された
一つのフォントで複数のウェイト(文字の太さ)を表現できる バリアブルフォント。
Android 11 のシステムフォント(fonts.xml)を調べていたら、バリアブルフォント を見つけた。
Android 10 にも存在したが、Android 11 からさらに バリアブルフォント が追加されたことになる。
- Android 10
https://cs.android.com/android/platform/superproject/+/android-10.0.0_r30:frameworks/base/data/fonts/fonts.xml;l=151
<family lang="und-Geor,und-Geok"> <font weight="400" style="normal">NotoSansGeorgian-Regular.otf</font> <font weight="500" style="normal">NotoSansGeorgian-Medium.otf</font> <font weight="700" style="normal">NotoSansGeorgian-Bold.otf</font> <font weight="400" style="normal" fallbackFor="serif">NotoSerifGeorgian-Regular.otf</font> <font weight="700" style="normal" fallbackFor="serif">NotoSerifGeorgian-Bold.otf</font> </family>
- Android 11
https://cs.android.com/android/platform/superproject/+/android-11.0.0_r1:frameworks/base/data/fonts/fonts.xml;l=151
<family lang="und-Geor,und-Geok"> <font weight="400" style="normal">NotoSansGeorgian-VF.ttf <axis tag="wght" stylevalue="400" /> </font> <font weight="500" style="normal">NotoSansGeorgian-VF.ttf <axis tag="wght" stylevalue="500" /> </font> <font weight="600" style="normal">NotoSansGeorgian-VF.ttf <axis tag="wght" stylevalue="600" /> </font> <font weight="700" style="normal">NotoSansGeorgian-VF.ttf <axis tag="wght" stylevalue="700" /> </font> <font weight="400" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf <axis tag="wght" stylevalue="400" /> </font> <font weight="500" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf <axis tag="wght" stylevalue="500" /> </font> <font weight="600" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf <axis tag="wght" stylevalue="600" /> </font> <font weight="700" style="normal" fallbackFor="serif">NotoSerifGeorgian-VF.ttf <axis tag="wght" stylevalue="700" /> </font> </family>
- ファイル名の "-VF" が Variable Font の識別子になっている
Android 10 | Android 11 |
---|---|
NotoSansGeorgian-Regular.otf | |
NotoSansGeorgian-Medium.otf | NotoSansGeorgian-VF.ttf |
NotoSansGeorgian-Bold.otf | |
NotoSerifGeorgian-Regular.otf | NotoSerifGeorgian-VF.ttf |
NotoSerifGeorgian-Bold.otf |
フォントファイルは下記URLにある
https://cs.android.com/android/platform/superproject/+/android-11.0.0_r1:external/noto-fonts/other/"Variation Axes" に可変できるウェイトが記載されている
下記フォントも Variable Font に変わっていた。
- Android 10
<family lang="und-Adlm"> <font weight="400" style="normal">NotoSansAdlam-Regular.ttf</font> </family>
- Android 11
<family lang="und-Adlm"> <font weight="400" style="normal">NotoSansAdlam-VF.ttf <axis tag="wght" stylevalue="400" /> </font> <font weight="500" style="normal">NotoSansAdlam-VF.ttf <axis tag="wght" stylevalue="500" /> </font> <font weight="600" style="normal">NotoSansAdlam-VF.ttf <axis tag="wght" stylevalue="600" /> </font> <font weight="700" style="normal">NotoSansAdlam-VF.ttf <axis tag="wght" stylevalue="700" /> </font> </family>
Android 10 | Android 11 |
---|---|
NotoSansAdlam-Regular.ttf | NotoSansAdlam-VF.ttf |
今後はVariable Font が主流になってくるのかもしれない。
とは言っても、欧文フォントではファイル容量削減効果があまりない気がするが。。。