Loading tools/aconfig/TEST_MAPPING +0 −4 Original line number Diff line number Diff line Loading @@ -106,10 +106,6 @@ { // aconfig_storage read functional test "name": "aconfig_storage_read_functional" }, { // aconfig_storage read unit test "name": "aconfig_storage_read_unit" } ] } tools/aconfig/aconfig/src/codegen/java.rs +1 −1 Original line number Diff line number Diff line Loading @@ -555,7 +555,7 @@ mod tests { private static boolean enabledRw = true; private void init() { try { PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("system", "com.android.aconfig.test", 0x5081CE7221C77064L); PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("com.android.aconfig.test", 0x5081CE7221C77064L); disabledRw = reader.getBooleanFlagValue(0); disabledRwExported = reader.getBooleanFlagValue(1); enabledRw = reader.getBooleanFlagValue(7); Loading tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template +2 −2 Original line number Diff line number Diff line Loading @@ -27,9 +27,9 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ private void init() \{ try \{ {{ if is_platform_container }} PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("{container}", "{package_name}", {package_fingerprint}); PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("{package_name}", {package_fingerprint}); {{ -else }} AconfigPackageInternal reader = AconfigPackageInternal.load("{container}", "{package_name}", {package_fingerprint}); AconfigPackageInternal reader = AconfigPackageInternal.load("{package_name}", {package_fingerprint}); {{ -endif }} {{ -for namespace_with_flags in namespace_flags }} {{ -for flag in namespace_with_flags.flags }} Loading tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/TableUtils.java +12 −0 Original line number Diff line number Diff line Loading @@ -63,4 +63,16 @@ public class TableUtils { long hashVal = SipHasher13.hash(val); return (int) Long.remainderUnsigned(hashVal, numBuckets); } public static class StorageFilesBundle { public final PackageTable packageTable; public final FlagTable flagTable; public final FlagValueList flagValueList; public StorageFilesBundle (PackageTable pTable, FlagTable fTable, FlagValueList fValueList) { this.packageTable = pTable; this.flagTable = fTable; this.flagValueList = fValueList; } } } tools/aconfig/aconfig_storage_read_api/srcs/android/os/flagging/PlatformAconfigPackage.java +17 −11 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.os.flagging; import static android.aconfig.storage.TableUtils.StorageFilesBundle; import android.aconfig.storage.AconfigStorageException; import android.aconfig.storage.FlagTable; import android.aconfig.storage.FlagValueList; Loading Loading @@ -49,8 +51,6 @@ public class PlatformAconfigPackage { private static final String MAP_PATH = "/metadata/aconfig/maps/"; private static final String BOOT_PATH = "/metadata/aconfig/boot/"; private static final Map<String, PackageTable> sPackageTableCache = new HashMap<>(); private FlagTable mFlagTable; private FlagValueList mFlagValueList; Loading @@ -59,6 +59,9 @@ public class PlatformAconfigPackage { private PlatformAconfigPackage() {} /** @hide */ static final Map<String, StorageFilesBundle> sStorageFilesCache = new HashMap<>(); /** @hide */ @UnsupportedAppUsage public static final Set<String> PLATFORM_PACKAGE_MAP_FILES = Loading @@ -68,8 +71,14 @@ public class PlatformAconfigPackage { for (String pf : PLATFORM_PACKAGE_MAP_FILES) { try { PackageTable pTable = PackageTable.fromBytes(mapStorageFile(MAP_PATH + pf)); String container = pTable.getHeader().getContainer(); FlagTable fTable = FlagTable.fromBytes(mapStorageFile(MAP_PATH + container + ".flag.map")); FlagValueList fValueList = FlagValueList.fromBytes(mapStorageFile(BOOT_PATH + container + ".val")); StorageFilesBundle files = new StorageFilesBundle(pTable, fTable, fValueList); for (String packageName : pTable.getPackageList()) { sPackageTableCache.put(packageName, pTable); sStorageFilesCache.put(packageName, files); } } catch (Exception e) { // pass Loading @@ -95,16 +104,13 @@ public class PlatformAconfigPackage { public static PlatformAconfigPackage load(String packageName) { try { PlatformAconfigPackage aconfigPackage = new PlatformAconfigPackage(); PackageTable pTable = sPackageTableCache.get(packageName); if (pTable == null) { StorageFilesBundle files = sStorageFilesCache.get(packageName); if (files == null) { return null; } PackageTable.Node pNode = pTable.get(packageName); String container = pTable.getHeader().getContainer(); aconfigPackage.mFlagTable = FlagTable.fromBytes(mapStorageFile(MAP_PATH + container + ".flag.map")); aconfigPackage.mFlagValueList = FlagValueList.fromBytes(mapStorageFile(BOOT_PATH + container + ".val")); PackageTable.Node pNode = files.packageTable.get(packageName); aconfigPackage.mFlagTable = files.flagTable; aconfigPackage.mFlagValueList = files.flagValueList; aconfigPackage.mPackageBooleanStartOffset = pNode.getBooleanStartIndex(); aconfigPackage.mPackageId = pNode.getPackageId(); return aconfigPackage; Loading Loading
tools/aconfig/TEST_MAPPING +0 −4 Original line number Diff line number Diff line Loading @@ -106,10 +106,6 @@ { // aconfig_storage read functional test "name": "aconfig_storage_read_functional" }, { // aconfig_storage read unit test "name": "aconfig_storage_read_unit" } ] }
tools/aconfig/aconfig/src/codegen/java.rs +1 −1 Original line number Diff line number Diff line Loading @@ -555,7 +555,7 @@ mod tests { private static boolean enabledRw = true; private void init() { try { PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("system", "com.android.aconfig.test", 0x5081CE7221C77064L); PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("com.android.aconfig.test", 0x5081CE7221C77064L); disabledRw = reader.getBooleanFlagValue(0); disabledRwExported = reader.getBooleanFlagValue(1); enabledRw = reader.getBooleanFlagValue(7); Loading
tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template +2 −2 Original line number Diff line number Diff line Loading @@ -27,9 +27,9 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ private void init() \{ try \{ {{ if is_platform_container }} PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("{container}", "{package_name}", {package_fingerprint}); PlatformAconfigPackageInternal reader = PlatformAconfigPackageInternal.load("{package_name}", {package_fingerprint}); {{ -else }} AconfigPackageInternal reader = AconfigPackageInternal.load("{container}", "{package_name}", {package_fingerprint}); AconfigPackageInternal reader = AconfigPackageInternal.load("{package_name}", {package_fingerprint}); {{ -endif }} {{ -for namespace_with_flags in namespace_flags }} {{ -for flag in namespace_with_flags.flags }} Loading
tools/aconfig/aconfig_storage_file/srcs/android/aconfig/storage/TableUtils.java +12 −0 Original line number Diff line number Diff line Loading @@ -63,4 +63,16 @@ public class TableUtils { long hashVal = SipHasher13.hash(val); return (int) Long.remainderUnsigned(hashVal, numBuckets); } public static class StorageFilesBundle { public final PackageTable packageTable; public final FlagTable flagTable; public final FlagValueList flagValueList; public StorageFilesBundle (PackageTable pTable, FlagTable fTable, FlagValueList fValueList) { this.packageTable = pTable; this.flagTable = fTable; this.flagValueList = fValueList; } } }
tools/aconfig/aconfig_storage_read_api/srcs/android/os/flagging/PlatformAconfigPackage.java +17 −11 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.os.flagging; import static android.aconfig.storage.TableUtils.StorageFilesBundle; import android.aconfig.storage.AconfigStorageException; import android.aconfig.storage.FlagTable; import android.aconfig.storage.FlagValueList; Loading Loading @@ -49,8 +51,6 @@ public class PlatformAconfigPackage { private static final String MAP_PATH = "/metadata/aconfig/maps/"; private static final String BOOT_PATH = "/metadata/aconfig/boot/"; private static final Map<String, PackageTable> sPackageTableCache = new HashMap<>(); private FlagTable mFlagTable; private FlagValueList mFlagValueList; Loading @@ -59,6 +59,9 @@ public class PlatformAconfigPackage { private PlatformAconfigPackage() {} /** @hide */ static final Map<String, StorageFilesBundle> sStorageFilesCache = new HashMap<>(); /** @hide */ @UnsupportedAppUsage public static final Set<String> PLATFORM_PACKAGE_MAP_FILES = Loading @@ -68,8 +71,14 @@ public class PlatformAconfigPackage { for (String pf : PLATFORM_PACKAGE_MAP_FILES) { try { PackageTable pTable = PackageTable.fromBytes(mapStorageFile(MAP_PATH + pf)); String container = pTable.getHeader().getContainer(); FlagTable fTable = FlagTable.fromBytes(mapStorageFile(MAP_PATH + container + ".flag.map")); FlagValueList fValueList = FlagValueList.fromBytes(mapStorageFile(BOOT_PATH + container + ".val")); StorageFilesBundle files = new StorageFilesBundle(pTable, fTable, fValueList); for (String packageName : pTable.getPackageList()) { sPackageTableCache.put(packageName, pTable); sStorageFilesCache.put(packageName, files); } } catch (Exception e) { // pass Loading @@ -95,16 +104,13 @@ public class PlatformAconfigPackage { public static PlatformAconfigPackage load(String packageName) { try { PlatformAconfigPackage aconfigPackage = new PlatformAconfigPackage(); PackageTable pTable = sPackageTableCache.get(packageName); if (pTable == null) { StorageFilesBundle files = sStorageFilesCache.get(packageName); if (files == null) { return null; } PackageTable.Node pNode = pTable.get(packageName); String container = pTable.getHeader().getContainer(); aconfigPackage.mFlagTable = FlagTable.fromBytes(mapStorageFile(MAP_PATH + container + ".flag.map")); aconfigPackage.mFlagValueList = FlagValueList.fromBytes(mapStorageFile(BOOT_PATH + container + ".val")); PackageTable.Node pNode = files.packageTable.get(packageName); aconfigPackage.mFlagTable = files.flagTable; aconfigPackage.mFlagValueList = files.flagValueList; aconfigPackage.mPackageBooleanStartOffset = pNode.getBooleanStartIndex(); aconfigPackage.mPackageId = pNode.getPackageId(); return aconfigPackage; Loading