diff --git a/tools/aconfig/tests/AconfigTest.java b/tools/aconfig/tests/AconfigTest.java
index bb993c4..b2deca0 100644
--- a/tools/aconfig/tests/AconfigTest.java
+++ b/tools/aconfig/tests/AconfigTest.java
@@ -33,17 +33,13 @@
     @Test
     public void testEnabledReadOnlyFlag() {
         assertEquals("com.android.aconfig.test.disabled_rw", FLAG_DISABLED_RW);
-        // TODO: change to assertTrue(enabledRo()) when the build supports reading tests/*.values
-        // (currently all flags are assigned the default READ_ONLY + DISABLED)
-        assertFalse(enabledRo());
+        assertTrue(enabledRo());
     }
 
     @Test
     public void testEnabledFixedReadOnlyFlag() {
         assertEquals("com.android.aconfig.test.enabled_fixed_ro", FLAG_ENABLED_FIXED_RO);
-        // TODO: change to assertTrue(enabledFixedRo()) when the build supports reading tests/*.values
-        // (currently all flags are assigned the default READ_ONLY + DISABLED)
-        assertFalse(enabledFixedRo());
+        assertTrue(enabledFixedRo());
     }
 
     @Test
@@ -55,9 +51,7 @@
     @Test
     public void testEnabledReadWriteFlag() {
         assertEquals("com.android.aconfig.test.enabled_rw", FLAG_ENABLED_RW);
-        // TODO: change to assertTrue(enabledRw()) when the build supports reading tests/*.values
-        // (currently all flags are assigned the default READ_ONLY + DISABLED)
-        assertFalse(enabledRw());
+        assertTrue(enabledRw());
     }
 
     @Test
diff --git a/tools/aconfig/tests/aconfig_prod_mode_test.rs b/tools/aconfig/tests/aconfig_prod_mode_test.rs
index 950c441..e1fb8e5 100644
--- a/tools/aconfig/tests/aconfig_prod_mode_test.rs
+++ b/tools/aconfig/tests/aconfig_prod_mode_test.rs
@@ -3,7 +3,6 @@
 fn test_flags() {
     assert!(!aconfig_test_rust_library::disabled_ro());
     assert!(!aconfig_test_rust_library::disabled_rw());
-    // TODO: Fix template to not default both disabled and enabled to false
-    assert!(!aconfig_test_rust_library::enabled_ro());
-    assert!(!aconfig_test_rust_library::enabled_rw());
+    assert!(aconfig_test_rust_library::enabled_ro());
+    assert!(aconfig_test_rust_library::enabled_rw());
 }
diff --git a/tools/aconfig/tests/aconfig_test.cpp b/tools/aconfig/tests/aconfig_test.cpp
index 52651e4..0dec481 100644
--- a/tools/aconfig/tests/aconfig_test.cpp
+++ b/tools/aconfig/tests/aconfig_test.cpp
@@ -26,11 +26,9 @@
 }
 
 TEST(AconfigTest, TestEnabledReadOnlyFlag) {
-  // TODO: change to assertTrue(enabledRo()) when the build supports reading tests/*.values
-  // (currently all flags are assigned the default READ_ONLY + DISABLED)
-  ASSERT_FALSE(com_android_aconfig_test_enabled_ro());
-  ASSERT_FALSE(provider_->enabled_ro());
-  ASSERT_FALSE(enabled_ro());
+  ASSERT_TRUE(com_android_aconfig_test_enabled_ro());
+  ASSERT_TRUE(provider_->enabled_ro());
+  ASSERT_TRUE(enabled_ro());
 }
 
 TEST(AconfigTest, TestDisabledReadWriteFlag) {
@@ -40,19 +38,15 @@
 }
 
 TEST(AconfigTest, TestEnabledReadWriteFlag) {
-  // TODO: change to assertTrue(enabledRo()) when the build supports reading tests/*.values
-  // (currently all flags are assigned the default READ_ONLY + DISABLED)
-  ASSERT_FALSE(com_android_aconfig_test_enabled_rw());
-  ASSERT_FALSE(provider_->enabled_rw());
-  ASSERT_FALSE(enabled_rw());
+  ASSERT_TRUE(com_android_aconfig_test_enabled_rw());
+  ASSERT_TRUE(provider_->enabled_rw());
+  ASSERT_TRUE(enabled_rw());
 }
 
 TEST(AconfigTest, TestEnabledFixedReadOnlyFlag) {
-  // TODO: change to assertTrue(enabledFixedRo()) when the build supports reading tests/*.values
-  // (currently all flags are assigned the default READ_ONLY + DISABLED)
-  ASSERT_FALSE(com_android_aconfig_test_enabled_fixed_ro());
-  ASSERT_FALSE(provider_->enabled_fixed_ro());
-  ASSERT_FALSE(enabled_fixed_ro());
+  ASSERT_TRUE(com_android_aconfig_test_enabled_fixed_ro());
+  ASSERT_TRUE(provider_->enabled_fixed_ro());
+  ASSERT_TRUE(enabled_fixed_ro());
 }
 
 int main(int argc, char** argv) {
diff --git a/tools/aconfig/tests/aconfig_test_mode_test.rs b/tools/aconfig/tests/aconfig_test_mode_test.rs
index 3f56d2c..a08fbab 100644
--- a/tools/aconfig/tests/aconfig_test_mode_test.rs
+++ b/tools/aconfig/tests/aconfig_test_mode_test.rs
@@ -3,22 +3,21 @@
 fn test_flags() {
     assert!(!aconfig_test_rust_library::disabled_ro());
     assert!(!aconfig_test_rust_library::disabled_rw());
-    // TODO: Fix template to not default both disabled and enabled to false
-    assert!(!aconfig_test_rust_library::enabled_ro());
-    assert!(!aconfig_test_rust_library::enabled_rw());
+    assert!(aconfig_test_rust_library::enabled_ro());
+    assert!(aconfig_test_rust_library::enabled_rw());
 
     aconfig_test_rust_library::set_disabled_ro(true);
     assert!(aconfig_test_rust_library::disabled_ro());
     aconfig_test_rust_library::set_disabled_rw(true);
     assert!(aconfig_test_rust_library::disabled_rw());
-    aconfig_test_rust_library::set_enabled_ro(true);
-    assert!(aconfig_test_rust_library::enabled_ro());
-    aconfig_test_rust_library::set_enabled_rw(true);
-    assert!(aconfig_test_rust_library::enabled_rw());
+    aconfig_test_rust_library::set_enabled_ro(false);
+    assert!(!aconfig_test_rust_library::enabled_ro());
+    aconfig_test_rust_library::set_enabled_rw(false);
+    assert!(!aconfig_test_rust_library::enabled_rw());
 
     aconfig_test_rust_library::reset_flags();
     assert!(!aconfig_test_rust_library::disabled_ro());
     assert!(!aconfig_test_rust_library::disabled_rw());
-    assert!(!aconfig_test_rust_library::enabled_ro());
-    assert!(!aconfig_test_rust_library::enabled_rw());
+    assert!(aconfig_test_rust_library::enabled_ro());
+    assert!(aconfig_test_rust_library::enabled_rw());
 }
diff --git a/tools/aconfig/tests/aconfig_test_test_variant.cpp b/tools/aconfig/tests/aconfig_test_test_variant.cpp
index 8a745c5..b3cf710 100644
--- a/tools/aconfig/tests/aconfig_test_test_variant.cpp
+++ b/tools/aconfig/tests/aconfig_test_test_variant.cpp
@@ -33,11 +33,9 @@
 }
 
 TEST_F(AconfigTest, TestEnabledReadOnlyFlag) {
-  // TODO: change to assertTrue(enabledRo()) when the build supports reading tests/*.values
-  // (currently all flags are assigned the default READ_ONLY + DISABLED)
-  ASSERT_FALSE(com_android_aconfig_test_enabled_ro());
-  ASSERT_FALSE(provider_->enabled_ro());
-  ASSERT_FALSE(enabled_ro());
+  ASSERT_TRUE(com_android_aconfig_test_enabled_ro());
+  ASSERT_TRUE(provider_->enabled_ro());
+  ASSERT_TRUE(enabled_ro());
 }
 
 TEST_F(AconfigTest, TestDisabledReadWriteFlag) {
@@ -47,19 +45,15 @@
 }
 
 TEST_F(AconfigTest, TestEnabledReadWriteFlag) {
-  // TODO: change to assertTrue(enabledRo()) when the build supports reading tests/*.values
-  // (currently all flags are assigned the default READ_ONLY + DISABLED)
-  ASSERT_FALSE(com_android_aconfig_test_enabled_rw());
-  ASSERT_FALSE(provider_->enabled_rw());
-  ASSERT_FALSE(enabled_rw());
+  ASSERT_TRUE(com_android_aconfig_test_enabled_rw());
+  ASSERT_TRUE(provider_->enabled_rw());
+  ASSERT_TRUE(enabled_rw());
 }
 
 TEST_F(AconfigTest, TestEnabledFixedReadOnlyFlag) {
-  // TODO: change to assertTrue(enabledFixedRo()) when the build supports reading tests/*.values
-  // (currently all flags are assigned the default READ_ONLY + DISABLED)
-  ASSERT_FALSE(com_android_aconfig_test_enabled_fixed_ro());
-  ASSERT_FALSE(provider_->enabled_fixed_ro());
-  ASSERT_FALSE(enabled_fixed_ro());
+  ASSERT_TRUE(com_android_aconfig_test_enabled_fixed_ro());
+  ASSERT_TRUE(provider_->enabled_fixed_ro());
+  ASSERT_TRUE(enabled_fixed_ro());
 }
 
 TEST_F(AconfigTest, OverrideFlagValue) {
@@ -70,14 +64,14 @@
 
 TEST_F(AconfigTest, ResetFlagValue) {
   ASSERT_FALSE(disabled_ro());
-  ASSERT_FALSE(enabled_ro());
-  disabled_ro(true);
-  enabled_ro(true);
-  ASSERT_TRUE(disabled_ro());
   ASSERT_TRUE(enabled_ro());
+  disabled_ro(true);
+  enabled_ro(false);
+  ASSERT_TRUE(disabled_ro());
+  ASSERT_FALSE(enabled_ro());
   reset_flags();
   ASSERT_FALSE(disabled_ro());
-  ASSERT_FALSE(enabled_ro());
+  ASSERT_TRUE(enabled_ro());
 }
 
 int main(int argc, char** argv) {
