From 84383b5ef87586804238c5dc62a2f274e7deb82e Mon Sep 17 00:00:00 2001 From: Seigo Nonaka Date: Wed, 3 Mar 2021 14:03:43 -0800 Subject: [PATCH] Update FontManager#getFontConfig to require permission There is no security risk in getFontConfig without calling permissions but for keeping compatibility it is recommended to have permissions to all (non-mainline) system APIs. To be able to test these APIs, grant UPDATE_FONTS permission to shell. Bug: 181796732 Test: atest FontManagerTest Change-Id: Ic1f663e1e01f3625a076e68949f717366e79f5fa --- core/api/system-current.txt | 2 +- core/api/test-current.txt | 2 +- core/java/android/graphics/fonts/FontManager.java | 1 + data/etc/privapp-permissions-platform.xml | 2 ++ packages/Shell/AndroidManifest.xml | 3 +++ .../com/android/server/graphics/fonts/FontManagerService.java | 2 ++ 6 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 5ca4d35d4c222..2045f4e6288f1 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -2893,7 +2893,7 @@ package android.graphics.fonts { } public class FontManager { - method @NonNull public android.text.FontConfig getFontConfig(); + method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_FONTS) public android.text.FontConfig getFontConfig(); method @RequiresPermission(android.Manifest.permission.UPDATE_FONTS) public int updateFontFamily(@NonNull android.graphics.fonts.FontFamilyUpdateRequest, @IntRange(from=0) int); field public static final int RESULT_ERROR_DOWNGRADING = -5; // 0xfffffffb field public static final int RESULT_ERROR_FAILED_TO_WRITE_FONT_FILE = -1; // 0xffffffff diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 7b5b1989c1e5a..fab23437fdfc8 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -960,7 +960,7 @@ package android.graphics.drawable { package android.graphics.fonts { public class FontManager { - method @NonNull public android.text.FontConfig getFontConfig(); + method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_FONTS) public android.text.FontConfig getFontConfig(); method @RequiresPermission(android.Manifest.permission.UPDATE_FONTS) public int updateFontFamily(@NonNull android.graphics.fonts.FontFamilyUpdateRequest, @IntRange(from=0) int); field public static final int RESULT_ERROR_DOWNGRADING = -5; // 0xfffffffb field public static final int RESULT_ERROR_FAILED_TO_WRITE_FONT_FILE = -1; // 0xffffffff diff --git a/core/java/android/graphics/fonts/FontManager.java b/core/java/android/graphics/fonts/FontManager.java index 7bf692f1d318b..fa2ccbc189ad2 100644 --- a/core/java/android/graphics/fonts/FontManager.java +++ b/core/java/android/graphics/fonts/FontManager.java @@ -195,6 +195,7 @@ public class FontManager { * @return The current font configuration. null if failed to fetch information from the system * service. */ + @RequiresPermission(Manifest.permission.UPDATE_FONTS) public @NonNull FontConfig getFontConfig() { try { return mIFontManager.getFontConfig(); diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml index c49fe8563dab9..a7b6636a15def 100644 --- a/data/etc/privapp-permissions-platform.xml +++ b/data/etc/privapp-permissions-platform.xml @@ -488,6 +488,8 @@ applications that come with the platform + + diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index a28a1e32a2a59..b4194fd5bbf9b 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -426,6 +426,9 @@ + + +