//
// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

#include "property_info_serializer/property_info_serializer.h"

#include "property_info_parser/property_info_parser.h"

#include <gtest/gtest.h>

namespace android {
namespace properties {

TEST(propertyinfoserializer, TrieNodeCheck) {
  auto property_info = std::vector<PropertyInfoEntry>{
      {"test.", "1st", "1st", false},     {"test.test", "2nd", "2nd", false},

      {"test.test1", "3rd", "3rd", true}, {"test.test2", "3rd", "3rd", true},
      {"test.test3", "3rd", "3rd", true}, {"this.is.a.long.string", "4th", "4th", true},
  };

  auto serialized_trie = std::string();
  auto build_trie_error = std::string();
  ASSERT_TRUE(BuildTrie(property_info, "default", "default", &serialized_trie, &build_trie_error))
      << build_trie_error;

  auto property_info_area = reinterpret_cast<const PropertyInfoArea*>(serialized_trie.data());

  // Initial checks for property area.
  EXPECT_EQ(1U, property_info_area->current_version());
  EXPECT_EQ(1U, property_info_area->minimum_supported_version());

  // Check the root node
  auto root_node = property_info_area->root_node();
  EXPECT_STREQ("root", root_node.name());
  EXPECT_STREQ("default", property_info_area->context(root_node.context_index()));
  EXPECT_STREQ("default", property_info_area->type(root_node.type_index()));

  EXPECT_EQ(0U, root_node.num_prefixes());
  EXPECT_EQ(0U, root_node.num_exact_matches());

  ASSERT_EQ(2U, root_node.num_child_nodes());

  // Check the 'test'. node
  TrieNode test_node;
  ASSERT_TRUE(root_node.FindChildForString("test", 4, &test_node));

  EXPECT_STREQ("test", test_node.name());
  EXPECT_STREQ("1st", property_info_area->context(test_node.context_index()));
  EXPECT_STREQ("1st", property_info_area->type(test_node.type_index()));

  EXPECT_EQ(0U, test_node.num_child_nodes());

  EXPECT_EQ(1U, test_node.num_prefixes());
  {
    auto prefix = test_node.prefix(0);
    EXPECT_STREQ("test", serialized_trie.data() + prefix->name_offset);
    EXPECT_EQ(4U, prefix->namelen);
    EXPECT_STREQ("2nd", property_info_area->context(prefix->context_index));
    EXPECT_STREQ("2nd", property_info_area->type(prefix->type_index));
  }

  EXPECT_EQ(3U, test_node.num_exact_matches());
  {
    auto match1 = test_node.exact_match(0);
    auto match2 = test_node.exact_match(1);
    auto match3 = test_node.exact_match(2);
    EXPECT_STREQ("test1", serialized_trie.data() + match1->name_offset);
    EXPECT_STREQ("test2", serialized_trie.data() + match2->name_offset);
    EXPECT_STREQ("test3", serialized_trie.data() + match3->name_offset);

    EXPECT_STREQ("3rd", property_info_area->context(match1->context_index));
    EXPECT_STREQ("3rd", property_info_area->context(match2->context_index));
    EXPECT_STREQ("3rd", property_info_area->context(match3->context_index));

    EXPECT_STREQ("3rd", property_info_area->type(match1->type_index));
    EXPECT_STREQ("3rd", property_info_area->type(match2->type_index));
    EXPECT_STREQ("3rd", property_info_area->type(match3->type_index));
  }

  // Check the long string node
  auto expect_empty_one_child = [](auto& node) {
    EXPECT_EQ(-1U, node.context_index());
    EXPECT_EQ(0U, node.num_prefixes());
    EXPECT_EQ(0U, node.num_exact_matches());
    EXPECT_EQ(1U, node.num_child_nodes());
  };

  // Start with 'this'
  TrieNode long_string_node;
  ASSERT_TRUE(root_node.FindChildForString("this", 4, &long_string_node));
  expect_empty_one_child(long_string_node);

  // Move to 'is'
  ASSERT_TRUE(long_string_node.FindChildForString("is", 2, &long_string_node));
  expect_empty_one_child(long_string_node);

  // Move to 'a'
  ASSERT_TRUE(long_string_node.FindChildForString("a", 1, &long_string_node));
  expect_empty_one_child(long_string_node);

  // Move to 'long'
  ASSERT_TRUE(long_string_node.FindChildForString("long", 4, &long_string_node));
  EXPECT_EQ(0U, long_string_node.num_prefixes());
  EXPECT_EQ(1U, long_string_node.num_exact_matches());
  EXPECT_EQ(0U, long_string_node.num_child_nodes());

  auto final_match = long_string_node.exact_match(0);
  EXPECT_STREQ("string", serialized_trie.data() + final_match->name_offset);
  EXPECT_STREQ("4th", property_info_area->context(final_match->context_index));
  EXPECT_STREQ("4th", property_info_area->type(final_match->type_index));
}

TEST(propertyinfoserializer, GetPropertyInfo) {
  auto property_info = std::vector<PropertyInfoEntry>{
      {"test.", "1st", "1st", false},       {"test.test", "2nd", "2nd", false},
      {"test.test2.", "6th", "6th", false}, {"test.test", "5th", "5th", true},
      {"test.test1", "3rd", "3rd", true},   {"test.test2", "7th", "7th", true},
      {"test.test3", "3rd", "3rd", true},   {"this.is.a.long.string", "4th", "4th", true},
      {"testoneword", "8th", "8th", true},  {"testwordprefix", "9th", "9th", false},
  };

  auto serialized_trie = std::string();
  auto build_trie_error = std::string();
  ASSERT_TRUE(BuildTrie(property_info, "default", "default", &serialized_trie, &build_trie_error))
      << build_trie_error;

  auto property_info_area = reinterpret_cast<const PropertyInfoArea*>(serialized_trie.data());

  // Smoke test
  auto root_node = property_info_area->root_node();
  EXPECT_STREQ("root", root_node.name());
  EXPECT_STREQ("default", property_info_area->context(root_node.context_index()));
  EXPECT_STREQ("default", property_info_area->type(root_node.type_index()));

  const char* context;
  const char* type;
  property_info_area->GetPropertyInfo("abc", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("abc.abc", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("123.abc", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);

  property_info_area->GetPropertyInfo("test.a", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("test.b", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("test.c", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);

  property_info_area->GetPropertyInfo("test.test", &context, &type);
  EXPECT_STREQ("5th", context);
  EXPECT_STREQ("5th", type);
  property_info_area->GetPropertyInfo("test.testa", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("test.testb", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("test.testc", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);

  property_info_area->GetPropertyInfo("test.test.a", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("test.test.b", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("test.test.c", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);

  property_info_area->GetPropertyInfo("test.test1", &context, &type);
  EXPECT_STREQ("3rd", context);
  EXPECT_STREQ("3rd", type);
  property_info_area->GetPropertyInfo("test.test2", &context, &type);
  EXPECT_STREQ("7th", context);
  EXPECT_STREQ("7th", type);
  property_info_area->GetPropertyInfo("test.test3", &context, &type);
  EXPECT_STREQ("3rd", context);
  EXPECT_STREQ("3rd", type);

  property_info_area->GetPropertyInfo("test.test11", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("test.test22", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("test.test33", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);

  property_info_area->GetPropertyInfo("this.is.a.long.string", &context, &type);
  EXPECT_STREQ("4th", context);
  EXPECT_STREQ("4th", type);

  property_info_area->GetPropertyInfo("this.is.a.long", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("this.is.a", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("this.is", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("this", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);

  property_info_area->GetPropertyInfo("test.test2.a", &context, &type);
  EXPECT_STREQ("6th", context);
  EXPECT_STREQ("6th", type);

  property_info_area->GetPropertyInfo("testoneword", &context, &type);
  EXPECT_STREQ("8th", context);
  EXPECT_STREQ("8th", type);

  property_info_area->GetPropertyInfo("testwordprefix", &context, &type);
  EXPECT_STREQ("9th", context);
  EXPECT_STREQ("9th", type);

  property_info_area->GetPropertyInfo("testwordprefixblah", &context, &type);
  EXPECT_STREQ("9th", context);
  EXPECT_STREQ("9th", type);

  property_info_area->GetPropertyInfo("testwordprefix.blah", &context, &type);
  EXPECT_STREQ("9th", context);
  EXPECT_STREQ("9th", type);
}

TEST(propertyinfoserializer, RealProperties) {
  auto property_info = std::vector<PropertyInfoEntry>{
      // Contexts from system/sepolicy/private/property_contexts
      {"net.rmnet", "u:object_r:net_radio_prop:s0", "string", false},
      {"net.gprs", "u:object_r:net_radio_prop:s0", "string", false},
      {"net.ppp", "u:object_r:net_radio_prop:s0", "string", false},
      {"net.qmi", "u:object_r:net_radio_prop:s0", "string", false},
      {"net.lte", "u:object_r:net_radio_prop:s0", "string", false},
      {"net.cdma", "u:object_r:net_radio_prop:s0", "string", false},
      {"net.dns", "u:object_r:net_dns_prop:s0", "string", false},
      {"sys.usb.config", "u:object_r:system_radio_prop:s0", "string", false},
      {"ril.", "u:object_r:radio_prop:s0", "string", false},
      {"ro.ril.", "u:object_r:radio_prop:s0", "string", false},
      {"gsm.", "u:object_r:radio_prop:s0", "string", false},
      {"persist.radio", "u:object_r:radio_prop:s0", "string", false},

      {"net.", "u:object_r:system_prop:s0", "string", false},
      {"dev.", "u:object_r:system_prop:s0", "string", false},
      {"ro.runtime.", "u:object_r:system_prop:s0", "string", false},
      {"ro.runtime.firstboot", "u:object_r:firstboot_prop:s0", "string", false},
      {"hw.", "u:object_r:system_prop:s0", "string", false},
      {"ro.hw.", "u:object_r:system_prop:s0", "string", false},
      {"sys.", "u:object_r:system_prop:s0", "string", false},
      {"sys.cppreopt", "u:object_r:cppreopt_prop:s0", "string", false},
      {"sys.powerctl", "u:object_r:powerctl_prop:s0", "string", false},
      {"sys.usb.ffs.", "u:object_r:ffs_prop:s0", "string", false},
      {"service.", "u:object_r:system_prop:s0", "string", false},
      {"dhcp.", "u:object_r:dhcp_prop:s0", "string", false},
      {"dhcp.bt-pan.result", "u:object_r:pan_result_prop:s0", "string", false},
      {"bluetooth.", "u:object_r:bluetooth_prop:s0", "string", false},

      {"debug.", "u:object_r:debug_prop:s0", "string", false},
      {"debug.db.", "u:object_r:debuggerd_prop:s0", "string", false},
      {"dumpstate.", "u:object_r:dumpstate_prop:s0", "string", false},
      {"dumpstate.options", "u:object_r:dumpstate_options_prop:s0", "string", false},
      {"log.", "u:object_r:log_prop:s0", "string", false},
      {"log.tag", "u:object_r:log_tag_prop:s0", "string", false},
      {"log.tag.WifiHAL", "u:object_r:wifi_log_prop:s0", "string", false},
      {"security.perf_harden", "u:object_r:shell_prop:s0", "string", false},
      {"service.adb.root", "u:object_r:shell_prop:s0", "string", false},
      {"service.adb.tcp.port", "u:object_r:shell_prop:s0", "string", false},

      {"persist.audio.", "u:object_r:audio_prop:s0", "string", false},
      {"persist.bluetooth.", "u:object_r:bluetooth_prop:s0", "string", false},
      {"persist.debug.", "u:object_r:persist_debug_prop:s0", "string", false},
      {"persist.logd.", "u:object_r:logd_prop:s0", "string", false},
      {"persist.logd.security", "u:object_r:device_logging_prop:s0", "string", false},
      {"persist.logd.logpersistd", "u:object_r:logpersistd_logging_prop:s0", "string", false},
      {"logd.logpersistd", "u:object_r:logpersistd_logging_prop:s0", "string", false},
      {"persist.log.tag", "u:object_r:log_tag_prop:s0", "string", false},
      {"persist.mmc.", "u:object_r:mmc_prop:s0", "string", false},
      {"persist.netd.stable_secret", "u:object_r:netd_stable_secret_prop:s0", "string", false},
      {"persist.sys.", "u:object_r:system_prop:s0", "string", false},
      {"persist.sys.safemode", "u:object_r:safemode_prop:s0", "string", false},
      {"ro.sys.safemode", "u:object_r:safemode_prop:s0", "string", false},
      {"persist.sys.audit_safemode", "u:object_r:safemode_prop:s0", "string", false},
      {"persist.service.", "u:object_r:system_prop:s0", "string", false},
      {"persist.service.bdroid.", "u:object_r:bluetooth_prop:s0", "string", false},
      {"persist.security.", "u:object_r:system_prop:s0", "string", false},
      {"persist.vendor.overlay.", "u:object_r:overlay_prop:s0", "string", false},
      {"ro.boot.vendor.overlay.", "u:object_r:overlay_prop:s0", "string", false},
      {"ro.boottime.", "u:object_r:boottime_prop:s0", "string", false},
      {"ro.serialno", "u:object_r:serialno_prop:s0", "string", false},
      {"ro.boot.btmacaddr", "u:object_r:bluetooth_prop:s0", "string", false},
      {"ro.boot.serialno", "u:object_r:serialno_prop:s0", "string", false},
      {"ro.bt.", "u:object_r:bluetooth_prop:s0", "string", false},
      {"ro.boot.bootreason", "u:object_r:bootloader_boot_reason_prop:s0", "string", false},
      {"persist.sys.boot.reason", "u:object_r:last_boot_reason_prop:s0", "string", false},
      {"sys.boot.reason", "u:object_r:system_boot_reason_prop:s0", "string", false},
      {"ro.organization_owned", "u:object_r:device_logging_prop:s0", "string", false},

      {"selinux.restorecon_recursive", "u:object_r:restorecon_prop:s0", "string", false},

      {"vold.", "u:object_r:vold_prop:s0", "string", false},
      {"ro.crypto.", "u:object_r:vold_prop:s0", "string", false},

      {"ro.build.fingerprint", "u:object_r:fingerprint_prop:s0", "string", false},

      {"ro.persistent_properties.ready", "u:object_r:persistent_properties_ready_prop:s0", "string",
       false},

      {"ctl.bootanim", "u:object_r:ctl_bootanim_prop:s0", "string", false},
      {"ctl.dumpstate", "u:object_r:ctl_dumpstate_prop:s0", "string", false},
      {"ctl.fuse_", "u:object_r:ctl_fuse_prop:s0", "string", false},
      {"ctl.mdnsd", "u:object_r:ctl_mdnsd_prop:s0", "string", false},
      {"ctl.ril-daemon", "u:object_r:ctl_rildaemon_prop:s0", "string", false},
      {"ctl.bugreport", "u:object_r:ctl_bugreport_prop:s0", "string", false},
      {"ctl.console", "u:object_r:ctl_console_prop:s0", "string", false},
      {"ctl.", "u:object_r:ctl_default_prop:s0", "string", false},

      {"nfc.", "u:object_r:nfc_prop:s0", "string", false},

      {"config.", "u:object_r:config_prop:s0", "string", false},
      {"ro.config.", "u:object_r:config_prop:s0", "string", false},
      {"dalvik.", "u:object_r:dalvik_prop:s0", "string", false},
      {"ro.dalvik.", "u:object_r:dalvik_prop:s0", "string", false},

      {"wlan.", "u:object_r:wifi_prop:s0", "string", false},

      {"lowpan.", "u:object_r:lowpan_prop:s0", "string", false},
      {"ro.lowpan.", "u:object_r:lowpan_prop:s0", "string", false},

      {"hwservicemanager.", "u:object_r:hwservicemanager_prop:s0", "string", false},
      // Contexts from device/lge/bullhead/sepolicy/property_contexts
      {"wc_transport.", "u:object_r:wc_transport_prop:s0", "string", false},
      {"sys.listeners.", "u:object_r:qseecomtee_prop:s0", "string", false},
      {"sys.keymaster.", "u:object_r:qseecomtee_prop:s0", "string", false},
      {"radio.atfwd.", "u:object_r:radio_atfwd_prop:s0", "string", false},
      {"sys.ims.", "u:object_r:qcom_ims_prop:s0", "string", false},
      {"sensors.contexthub.", "u:object_r:contexthub_prop:s0", "string", false},
      {"net.r_rmnet", "u:object_r:net_radio_prop:s0", "string", false},
  };

  auto serialized_trie = std::string();
  auto build_trie_error = std::string();
  ASSERT_TRUE(BuildTrie(property_info, "u:object_r:default_prop:s0", "string", &serialized_trie,
                        &build_trie_error))
      << build_trie_error;

  auto property_info_area = reinterpret_cast<const PropertyInfoArea*>(serialized_trie.data());

  auto properties_and_contexts = std::vector<std::pair<std::string, std::string>>{
      // Actual properties on bullhead via `getprop -Z`
      {"af.fast_track_multiplier", "u:object_r:default_prop:s0"},
      {"audio_hal.period_size", "u:object_r:default_prop:s0"},
      {"bluetooth.enable_timeout_ms", "u:object_r:bluetooth_prop:s0"},
      {"dalvik.vm.appimageformat", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.boot-dex2oat-cpu-set", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.boot-dex2oat-threads", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.dex2oat-Xms", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.dex2oat-Xmx", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.dex2oat-cpu-set", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.dex2oat-threads", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.dexopt.secondary", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.heapgrowthlimit", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.heapmaxfree", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.heapminfree", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.heapsize", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.heapstartsize", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.heaptargetutilization", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.image-dex2oat-Xms", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.image-dex2oat-Xmx", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.image-dex2oat-cpu-set", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.image-dex2oat-threads", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.isa.arm.features", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.isa.arm.variant", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.isa.arm64.features", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.isa.arm64.variant", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.lockprof.threshold", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.stack-trace-file", "u:object_r:dalvik_prop:s0"},
      {"dalvik.vm.usejit", "u:object_r:dalvik_prop:s0"},
      {"debug.atrace.tags.enableflags", "u:object_r:debug_prop:s0"},
      {"debug.force_rtl", "u:object_r:debug_prop:s0"},
      {"dev.bootcomplete", "u:object_r:system_prop:s0"},
      {"drm.service.enabled", "u:object_r:default_prop:s0"},
      {"gsm.current.phone-type", "u:object_r:radio_prop:s0"},
      {"gsm.network.type", "u:object_r:radio_prop:s0"},
      {"gsm.operator.alpha", "u:object_r:radio_prop:s0"},
      {"gsm.operator.iso-country", "u:object_r:radio_prop:s0"},
      {"gsm.operator.isroaming", "u:object_r:radio_prop:s0"},
      {"gsm.operator.numeric", "u:object_r:radio_prop:s0"},
      {"gsm.sim.operator.alpha", "u:object_r:radio_prop:s0"},
      {"gsm.sim.operator.iso-country", "u:object_r:radio_prop:s0"},
      {"gsm.sim.operator.numeric", "u:object_r:radio_prop:s0"},
      {"gsm.sim.state", "u:object_r:radio_prop:s0"},
      {"gsm.version.baseband", "u:object_r:radio_prop:s0"},
      {"gsm.version.ril-impl", "u:object_r:radio_prop:s0"},
      {"hwservicemanager.ready", "u:object_r:hwservicemanager_prop:s0"},
      {"init.svc.adbd", "u:object_r:default_prop:s0"},
      {"init.svc.atfwd", "u:object_r:default_prop:s0"},
      {"init.svc.audioserver", "u:object_r:default_prop:s0"},
      {"init.svc.bootanim", "u:object_r:default_prop:s0"},
      {"init.svc.bullhead-sh", "u:object_r:default_prop:s0"},
      {"init.svc.cameraserver", "u:object_r:default_prop:s0"},
      {"init.svc.cnd", "u:object_r:default_prop:s0"},
      {"init.svc.cnss-daemon", "u:object_r:default_prop:s0"},
      {"init.svc.cnss_diag", "u:object_r:default_prop:s0"},
      {"init.svc.configstore-hal-1-0", "u:object_r:default_prop:s0"},
      {"init.svc.console", "u:object_r:default_prop:s0"},
      {"init.svc.devstart_sh", "u:object_r:default_prop:s0"},
      {"init.svc.drm", "u:object_r:default_prop:s0"},
      {"init.svc.dumpstate-1-0", "u:object_r:default_prop:s0"},
      {"init.svc.flash-nanohub-fw", "u:object_r:default_prop:s0"},
      {"init.svc.fps_hal", "u:object_r:default_prop:s0"},
      {"init.svc.gatekeeperd", "u:object_r:default_prop:s0"},
      {"init.svc.gralloc-2-0", "u:object_r:default_prop:s0"},
      {"init.svc.healthd", "u:object_r:default_prop:s0"},
      {"init.svc.hidl_memory", "u:object_r:default_prop:s0"},
      {"init.svc.hostapd", "u:object_r:default_prop:s0"},
      {"init.svc.hwservicemanager", "u:object_r:default_prop:s0"},
      {"init.svc.imsdatadaemon", "u:object_r:default_prop:s0"},
      {"init.svc.imsqmidaemon", "u:object_r:default_prop:s0"},
      {"init.svc.installd", "u:object_r:default_prop:s0"},
      {"init.svc.irsc_util", "u:object_r:default_prop:s0"},
      {"init.svc.keystore", "u:object_r:default_prop:s0"},
      {"init.svc.lmkd", "u:object_r:default_prop:s0"},
      {"init.svc.loc_launcher", "u:object_r:default_prop:s0"},
      {"init.svc.logd", "u:object_r:default_prop:s0"},
      {"init.svc.logd-reinit", "u:object_r:default_prop:s0"},
      {"init.svc.media", "u:object_r:default_prop:s0"},
      {"init.svc.mediadrm", "u:object_r:default_prop:s0"},
      {"init.svc.mediaextractor", "u:object_r:default_prop:s0"},
      {"init.svc.mediametrics", "u:object_r:default_prop:s0"},
      {"init.svc.msm_irqbalance", "u:object_r:default_prop:s0"},
      {"init.svc.netd", "u:object_r:default_prop:s0"},
      {"init.svc.netmgrd", "u:object_r:default_prop:s0"},
      {"init.svc.per_mgr", "u:object_r:default_prop:s0"},
      {"init.svc.per_proxy", "u:object_r:default_prop:s0"},
      {"init.svc.perfd", "u:object_r:default_prop:s0"},
      {"init.svc.qcamerasvr", "u:object_r:default_prop:s0"},
      {"init.svc.qmuxd", "u:object_r:default_prop:s0"},
      {"init.svc.qseecomd", "u:object_r:default_prop:s0"},
      {"init.svc.qti", "u:object_r:default_prop:s0"},
      {"init.svc.ril-daemon", "u:object_r:default_prop:s0"},
      {"init.svc.rmt_storage", "u:object_r:default_prop:s0"},
      {"init.svc.servicemanager", "u:object_r:default_prop:s0"},
      {"init.svc.ss_ramdump", "u:object_r:default_prop:s0"},
      {"init.svc.start_hci_filter", "u:object_r:default_prop:s0"},
      {"init.svc.storaged", "u:object_r:default_prop:s0"},
      {"init.svc.surfaceflinger", "u:object_r:default_prop:s0"},
      {"init.svc.thermal-engine", "u:object_r:default_prop:s0"},
      {"init.svc.time_daemon", "u:object_r:default_prop:s0"},
      {"init.svc.tombstoned", "u:object_r:default_prop:s0"},
      {"init.svc.ueventd", "u:object_r:default_prop:s0"},
      {"init.svc.update_engine", "u:object_r:default_prop:s0"},
      {"init.svc.usb-hal-1-0", "u:object_r:default_prop:s0"},
      {"init.svc.vndservicemanager", "u:object_r:default_prop:s0"},
      {"init.svc.vold", "u:object_r:default_prop:s0"},
      {"init.svc.webview_zygote32", "u:object_r:default_prop:s0"},
      {"init.svc.wifi_hal_legacy", "u:object_r:default_prop:s0"},
      {"init.svc.wificond", "u:object_r:default_prop:s0"},
      {"init.svc.wpa_supplicant", "u:object_r:default_prop:s0"},
      {"init.svc.zygote", "u:object_r:default_prop:s0"},
      {"init.svc.zygote_secondary", "u:object_r:default_prop:s0"},
      {"keyguard.no_require_sim", "u:object_r:default_prop:s0"},
      {"log.tag.WifiHAL", "u:object_r:wifi_log_prop:s0"},
      {"logd.logpersistd.enable", "u:object_r:logpersistd_logging_prop:s0"},
      {"media.aac_51_output_enabled", "u:object_r:default_prop:s0"},
      {"media.recorder.show_manufacturer_and_model", "u:object_r:default_prop:s0"},
      {"net.bt.name", "u:object_r:system_prop:s0"},
      {"net.lte.ims.data.enabled", "u:object_r:net_radio_prop:s0"},
      {"net.tcp.default_init_rwnd", "u:object_r:system_prop:s0"},
      {"nfc.initialized", "u:object_r:nfc_prop:s0"},
      {"persist.audio.fluence.speaker", "u:object_r:audio_prop:s0"},
      {"persist.audio.fluence.voicecall", "u:object_r:audio_prop:s0"},
      {"persist.audio.fluence.voicecomm", "u:object_r:audio_prop:s0"},
      {"persist.audio.fluence.voicerec", "u:object_r:audio_prop:s0"},
      {"persist.camera.tnr.preview", "u:object_r:default_prop:s0"},
      {"persist.camera.tnr.video", "u:object_r:default_prop:s0"},
      {"persist.data.iwlan.enable", "u:object_r:default_prop:s0"},
      {"persist.hwc.mdpcomp.enable", "u:object_r:default_prop:s0"},
      {"persist.logd.logpersistd", "u:object_r:logpersistd_logging_prop:s0"},
      {"persist.media.treble_omx", "u:object_r:default_prop:s0"},
      {"persist.qcril.disable_retry", "u:object_r:default_prop:s0"},
      {"persist.radio.adb_log_on", "u:object_r:radio_prop:s0"},
      {"persist.radio.always_send_plmn", "u:object_r:radio_prop:s0"},
      {"persist.radio.apm_sim_not_pwdn", "u:object_r:radio_prop:s0"},
      {"persist.radio.custom_ecc", "u:object_r:radio_prop:s0"},
      {"persist.radio.data_con_rprt", "u:object_r:radio_prop:s0"},
      {"persist.radio.data_no_toggle", "u:object_r:radio_prop:s0"},
      {"persist.radio.eons.enabled", "u:object_r:radio_prop:s0"},
      {"persist.radio.eri64_as_home", "u:object_r:radio_prop:s0"},
      {"persist.radio.mode_pref_nv10", "u:object_r:radio_prop:s0"},
      {"persist.radio.process_sups_ind", "u:object_r:radio_prop:s0"},
      {"persist.radio.redir_party_num", "u:object_r:radio_prop:s0"},
      {"persist.radio.ril_payload_on", "u:object_r:radio_prop:s0"},
      {"persist.radio.snapshot_enabled", "u:object_r:radio_prop:s0"},
      {"persist.radio.snapshot_timer", "u:object_r:radio_prop:s0"},
      {"persist.radio.use_cc_names", "u:object_r:radio_prop:s0"},
      {"persist.speaker.prot.enable", "u:object_r:default_prop:s0"},
      {"persist.sys.boot.reason", "u:object_r:last_boot_reason_prop:s0"},
      {"persist.sys.dalvik.vm.lib.2", "u:object_r:system_prop:s0"},
      {"persist.sys.debug.color_temp", "u:object_r:system_prop:s0"},
      {"persist.sys.preloads.file_cache_expired", "u:object_r:system_prop:s0"},
      {"persist.sys.timezone", "u:object_r:system_prop:s0"},
      {"persist.sys.usb.config", "u:object_r:system_prop:s0"},
      {"persist.sys.webview.vmsize", "u:object_r:system_prop:s0"},
      {"persist.tom", "u:object_r:default_prop:s0"},
      {"persist.tom2", "u:object_r:default_prop:s0"},
      {"pm.dexopt.ab-ota", "u:object_r:default_prop:s0"},
      {"pm.dexopt.bg-dexopt", "u:object_r:default_prop:s0"},
      {"pm.dexopt.boot", "u:object_r:default_prop:s0"},
      {"pm.dexopt.first-boot", "u:object_r:default_prop:s0"},
      {"pm.dexopt.install", "u:object_r:default_prop:s0"},
      {"qcom.bluetooth.soc", "u:object_r:default_prop:s0"},
      {"radio.atfwd.start", "u:object_r:radio_atfwd_prop:s0"},
      {"ril.ecclist", "u:object_r:radio_prop:s0"},
      {"ril.nosim.ecc_list_1", "u:object_r:radio_prop:s0"},
      {"ril.nosim.ecc_list_count", "u:object_r:radio_prop:s0"},
      {"ril.qcril_pre_init_lock_held", "u:object_r:radio_prop:s0"},
      {"rild.libpath", "u:object_r:default_prop:s0"},
      {"ro.allow.mock.location", "u:object_r:default_prop:s0"},
      {"ro.audio.flinger_standbytime_ms", "u:object_r:default_prop:s0"},
      {"ro.baseband", "u:object_r:default_prop:s0"},
      {"ro.bionic.ld.warning", "u:object_r:default_prop:s0"},
      {"ro.board.platform", "u:object_r:default_prop:s0"},
      {"ro.boot.baseband", "u:object_r:default_prop:s0"},
      {"ro.boot.bootloader", "u:object_r:default_prop:s0"},
      {"ro.boot.bootreason", "u:object_r:bootloader_boot_reason_prop:s0"},
      {"ro.boot.dlcomplete", "u:object_r:default_prop:s0"},
      {"ro.boot.emmc", "u:object_r:default_prop:s0"},
      {"ro.boot.flash.locked", "u:object_r:default_prop:s0"},
      {"ro.boot.hardware", "u:object_r:default_prop:s0"},
      {"ro.boot.hardware.sku", "u:object_r:default_prop:s0"},
      {"ro.boot.revision", "u:object_r:default_prop:s0"},
      {"ro.boot.serialno", "u:object_r:serialno_prop:s0"},
      {"ro.boot.verifiedbootstate", "u:object_r:default_prop:s0"},
      {"ro.boot.veritymode", "u:object_r:default_prop:s0"},
      {"ro.boot.wificountrycode", "u:object_r:default_prop:s0"},
      {"ro.bootimage.build.date", "u:object_r:default_prop:s0"},
      {"ro.bootimage.build.date.utc", "u:object_r:default_prop:s0"},
      {"ro.bootimage.build.fingerprint", "u:object_r:default_prop:s0"},
      {"ro.bootloader", "u:object_r:default_prop:s0"},
      {"ro.bootmode", "u:object_r:default_prop:s0"},
      {"ro.boottime.adbd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.atfwd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.audioserver", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.bootanim", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.bullhead-sh", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.cameraserver", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.cnd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.cnss-daemon", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.cnss_diag", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.configstore-hal-1-0", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.console", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.devstart_sh", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.drm", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.dumpstate-1-0", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.flash-nanohub-fw", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.fps_hal", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.gatekeeperd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.gralloc-2-0", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.healthd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.hidl_memory", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.hwservicemanager", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.imsdatadaemon", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.imsqmidaemon", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.init", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.init.first_stage", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.init.cold_boot_wait", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.init.mount_all.default", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.init.selinux", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.installd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.irsc_util", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.keystore", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.lmkd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.loc_launcher", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.logd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.logd-reinit", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.media", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.mediadrm", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.mediaextractor", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.mediametrics", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.msm_irqbalance", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.netd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.netmgrd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.per_mgr", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.per_proxy", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.perfd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.qcamerasvr", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.qmuxd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.qseecomd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.qti", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.ril-daemon", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.rmt_storage", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.servicemanager", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.ss_ramdump", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.start_hci_filter", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.storaged", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.surfaceflinger", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.thermal-engine", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.time_daemon", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.tombstoned", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.ueventd", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.update_engine", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.usb-hal-1-0", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.vndservicemanager", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.vold", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.webview_zygote32", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.wifi_hal_legacy", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.wificond", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.zygote", "u:object_r:boottime_prop:s0"},
      {"ro.boottime.zygote_secondary", "u:object_r:boottime_prop:s0"},
      {"ro.bt.bdaddr_path", "u:object_r:bluetooth_prop:s0"},
      {"ro.build.characteristics", "u:object_r:default_prop:s0"},
      {"ro.build.date", "u:object_r:default_prop:s0"},
      {"ro.build.date.utc", "u:object_r:default_prop:s0"},
      {"ro.build.description", "u:object_r:default_prop:s0"},
      {"ro.build.display.id", "u:object_r:default_prop:s0"},
      {"ro.build.expect.baseband", "u:object_r:default_prop:s0"},
      {"ro.build.expect.bootloader", "u:object_r:default_prop:s0"},
      {"ro.build.fingerprint", "u:object_r:fingerprint_prop:s0"},
      {"ro.build.flavor", "u:object_r:default_prop:s0"},
      {"ro.build.host", "u:object_r:default_prop:s0"},
      {"ro.build.id", "u:object_r:default_prop:s0"},
      {"ro.build.product", "u:object_r:default_prop:s0"},
      {"ro.build.tags", "u:object_r:default_prop:s0"},
      {"ro.build.type", "u:object_r:default_prop:s0"},
      {"ro.build.user", "u:object_r:default_prop:s0"},
      {"ro.build.version.all_codenames", "u:object_r:default_prop:s0"},
      {"ro.build.version.base_os", "u:object_r:default_prop:s0"},
      {"ro.build.version.codename", "u:object_r:default_prop:s0"},
      {"ro.build.version.incremental", "u:object_r:default_prop:s0"},
      {"ro.build.version.preview_sdk", "u:object_r:default_prop:s0"},
      {"ro.build.version.release", "u:object_r:default_prop:s0"},
      {"ro.build.version.sdk", "u:object_r:default_prop:s0"},
      {"ro.build.version.security_patch", "u:object_r:default_prop:s0"},
      {"ro.camera.notify_nfc", "u:object_r:default_prop:s0"},
      {"ro.carrier", "u:object_r:default_prop:s0"},
      {"ro.com.android.dataroaming", "u:object_r:default_prop:s0"},
      {"ro.config.alarm_alert", "u:object_r:config_prop:s0"},
      {"ro.config.notification_sound", "u:object_r:config_prop:s0"},
      {"ro.config.ringtone", "u:object_r:config_prop:s0"},
      {"ro.config.vc_call_vol_steps", "u:object_r:config_prop:s0"},
      {"ro.crypto.fs_crypto_blkdev", "u:object_r:vold_prop:s0"},
      {"ro.crypto.state", "u:object_r:vold_prop:s0"},
      {"ro.crypto.type", "u:object_r:vold_prop:s0"},
      {"ro.dalvik.vm.native.bridge", "u:object_r:dalvik_prop:s0"},
      {"ro.debuggable", "u:object_r:default_prop:s0"},
      {"ro.organization_owned", "u:object_r:device_logging_prop:s0"},
      {"ro.expect.recovery_id", "u:object_r:default_prop:s0"},
      {"ro.frp.pst", "u:object_r:default_prop:s0"},
      {"ro.hardware", "u:object_r:default_prop:s0"},
      {"ro.hwui.drop_shadow_cache_size", "u:object_r:default_prop:s0"},
      {"ro.hwui.gradient_cache_size", "u:object_r:default_prop:s0"},
      {"ro.hwui.layer_cache_size", "u:object_r:default_prop:s0"},
      {"ro.hwui.path_cache_size", "u:object_r:default_prop:s0"},
      {"ro.hwui.r_buffer_cache_size", "u:object_r:default_prop:s0"},
      {"ro.hwui.text_large_cache_height", "u:object_r:default_prop:s0"},
      {"ro.hwui.text_large_cache_width", "u:object_r:default_prop:s0"},
      {"ro.hwui.text_small_cache_height", "u:object_r:default_prop:s0"},
      {"ro.hwui.text_small_cache_width", "u:object_r:default_prop:s0"},
      {"ro.hwui.texture_cache_flushrate", "u:object_r:default_prop:s0"},
      {"ro.hwui.texture_cache_size", "u:object_r:default_prop:s0"},
      {"ro.min_freq_0", "u:object_r:default_prop:s0"},
      {"ro.min_freq_4", "u:object_r:default_prop:s0"},
      {"ro.oem_unlock_supported", "u:object_r:default_prop:s0"},
      {"ro.opengles.version", "u:object_r:default_prop:s0"},
      {"ro.persistent_properties.ready", "u:object_r:persistent_properties_ready_prop:s0"},
      {"ro.product.board", "u:object_r:default_prop:s0"},
      {"ro.product.brand", "u:object_r:default_prop:s0"},
      {"ro.product.cpu.abi", "u:object_r:default_prop:s0"},
      {"ro.product.cpu.abilist", "u:object_r:default_prop:s0"},
      {"ro.product.cpu.abilist32", "u:object_r:default_prop:s0"},
      {"ro.product.cpu.abilist64", "u:object_r:default_prop:s0"},
      {"ro.product.device", "u:object_r:default_prop:s0"},
      {"ro.product.first_api_level", "u:object_r:default_prop:s0"},
      {"ro.product.locale", "u:object_r:default_prop:s0"},
      {"ro.product.manufacturer", "u:object_r:default_prop:s0"},
      {"ro.product.model", "u:object_r:default_prop:s0"},
      {"ro.product.name", "u:object_r:default_prop:s0"},
      {"ro.property_service.version", "u:object_r:default_prop:s0"},
      {"ro.qc.sdk.audio.fluencetype", "u:object_r:default_prop:s0"},
      {"ro.recovery_id", "u:object_r:default_prop:s0"},
      {"ro.revision", "u:object_r:default_prop:s0"},
      {"ro.ril.svdo", "u:object_r:radio_prop:s0"},
      {"ro.ril.svlte1x", "u:object_r:radio_prop:s0"},
      {"ro.runtime.firstboot", "u:object_r:firstboot_prop:s0"},
      {"ro.secure", "u:object_r:default_prop:s0"},
      {"ro.serialno", "u:object_r:serialno_prop:s0"},
      {"ro.sf.lcd_density", "u:object_r:default_prop:s0"},
      {"ro.telephony.call_ring.multiple", "u:object_r:default_prop:s0"},
      {"ro.telephony.default_cdma_sub", "u:object_r:default_prop:s0"},
      {"ro.telephony.default_network", "u:object_r:default_prop:s0"},
      {"ro.treble.enabled", "u:object_r:default_prop:s0"},
      {"ro.vendor.build.date", "u:object_r:default_prop:s0"},
      {"ro.vendor.build.date.utc", "u:object_r:default_prop:s0"},
      {"ro.vendor.build.fingerprint", "u:object_r:default_prop:s0"},
      {"ro.vendor.extension_library", "u:object_r:default_prop:s0"},
      {"ro.wifi.channels", "u:object_r:default_prop:s0"},
      {"ro.zygote", "u:object_r:default_prop:s0"},
      {"security.perf_harden", "u:object_r:shell_prop:s0"},
      {"sensors.contexthub.lid_state", "u:object_r:contexthub_prop:s0"},
      {"service.adb.root", "u:object_r:shell_prop:s0"},
      {"service.bootanim.exit", "u:object_r:system_prop:s0"},
      {"service.sf.present_timestamp", "u:object_r:system_prop:s0"},
      {"sys.boot.reason", "u:object_r:system_boot_reason_prop:s0"},
      {"sys.boot_completed", "u:object_r:system_prop:s0"},
      {"sys.ims.QMI_DAEMON_STATUS", "u:object_r:qcom_ims_prop:s0"},
      {"sys.listeners.registered", "u:object_r:qseecomtee_prop:s0"},
      {"sys.logbootcomplete", "u:object_r:system_prop:s0"},
      {"sys.oem_unlock_allowed", "u:object_r:system_prop:s0"},
      {"sys.qcom.devup", "u:object_r:system_prop:s0"},
      {"sys.sysctl.extra_free_kbytes", "u:object_r:system_prop:s0"},
      {"sys.usb.config", "u:object_r:system_radio_prop:s0"},
      {"sys.usb.configfs", "u:object_r:system_radio_prop:s0"},
      {"sys.usb.controller", "u:object_r:system_prop:s0"},
      {"sys.usb.ffs.aio_compat", "u:object_r:ffs_prop:s0"},
      {"sys.usb.ffs.max_read", "u:object_r:ffs_prop:s0"},
      {"sys.usb.ffs.max_write", "u:object_r:ffs_prop:s0"},
      {"sys.usb.ffs.ready", "u:object_r:ffs_prop:s0"},
      {"sys.usb.mtp.device_type", "u:object_r:system_prop:s0"},
      {"sys.usb.state", "u:object_r:system_prop:s0"},
      {"telephony.lteOnCdmaDevice", "u:object_r:default_prop:s0"},
      {"tombstoned.max_tombstone_count", "u:object_r:default_prop:s0"},
      {"vidc.debug.perf.mode", "u:object_r:default_prop:s0"},
      {"vidc.enc.dcvs.extra-buff-count", "u:object_r:default_prop:s0"},
      {"vold.decrypt", "u:object_r:vold_prop:s0"},
      {"vold.has_adoptable", "u:object_r:vold_prop:s0"},
      {"vold.post_fs_data_done", "u:object_r:vold_prop:s0"},
      {"wc_transport.clean_up", "u:object_r:wc_transport_prop:s0"},
      {"wc_transport.hci_filter_status", "u:object_r:wc_transport_prop:s0"},
      {"wc_transport.ref_count", "u:object_r:wc_transport_prop:s0"},
      {"wc_transport.soc_initialized", "u:object_r:wc_transport_prop:s0"},
      {"wc_transport.start_hci", "u:object_r:wc_transport_prop:s0"},
      {"wc_transport.vnd_power", "u:object_r:wc_transport_prop:s0"},
      {"wifi.interface", "u:object_r:default_prop:s0"},
      {"wifi.supplicant_scan_interval", "u:object_r:default_prop:s0"},
  };

  for (const auto& [property, context] : properties_and_contexts) {
    const char* returned_context;
    property_info_area->GetPropertyInfo(property.c_str(), &returned_context, nullptr);
    EXPECT_EQ(context, returned_context) << property;
  }
}

TEST(propertyinfoserializer, GetPropertyInfo_prefix_without_dot) {
  auto property_info = std::vector<PropertyInfoEntry>{
      {"persist.radio", "1st", "1st", false},
      {"persist.radio.something.else.here", "2nd", "2nd", false},
  };

  auto serialized_trie = std::string();
  auto build_trie_error = std::string();
  ASSERT_TRUE(BuildTrie(property_info, "default", "default", &serialized_trie, &build_trie_error))
      << build_trie_error;

  auto property_info_area = reinterpret_cast<const PropertyInfoArea*>(serialized_trie.data());

  const char* context;
  const char* type;
  property_info_area->GetPropertyInfo("persist.radio", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("persist.radio.subproperty", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("persist.radiowords", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("persist.radio.long.long.long.sub.property", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("persist.radio.something.else.here", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radio.something.else.here2", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radio.something.else.here.after", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radio.something.else.nothere", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("persist.radio.something.else", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
}

TEST(propertyinfoserializer, GetPropertyInfo_prefix_with_dot_vs_without) {
  auto property_info = std::vector<PropertyInfoEntry>{
      {"persist.", "1st", "1st", false},
      {"persist.radio", "2nd", "2nd", false},
      {"persist.radio.long.property.exact.match", "3rd", "3rd", true},
  };

  auto serialized_trie = std::string();
  auto build_trie_error = std::string();
  ASSERT_TRUE(BuildTrie(property_info, "default", "default", &serialized_trie, &build_trie_error))
      << build_trie_error;

  auto property_info_area = reinterpret_cast<const PropertyInfoArea*>(serialized_trie.data());

  const char* context;
  const char* type;
  property_info_area->GetPropertyInfo("persist.notradio", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("1st", type);
  property_info_area->GetPropertyInfo("persist.radio", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radio.subproperty", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radiowords", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radio.long.property.prefix.match", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("2nd", type);
  property_info_area->GetPropertyInfo("persist.radio.long.property.exact.match", &context, &type);
  EXPECT_STREQ("3rd", context);
  EXPECT_STREQ("3rd", type);
}

TEST(propertyinfoserializer, GetPropertyInfo_empty_context_and_type) {
  auto property_info = std::vector<PropertyInfoEntry>{
      {"persist.", "1st", "", false},
      {"persist.dot_prefix.", "2nd", "", false},
      {"persist.non_dot_prefix", "3rd", "", false},
      {"persist.exact_match", "", "", true},
      {"persist.dot_prefix2.", "", "4th", false},
      {"persist.non_dot_prefix2", "", "5th", false},
  };

  auto serialized_trie = std::string();
  auto build_trie_error = std::string();
  ASSERT_TRUE(BuildTrie(property_info, "default", "default", &serialized_trie, &build_trie_error))
      << build_trie_error;

  auto property_info_area = reinterpret_cast<const PropertyInfoArea*>(serialized_trie.data());

  const char* context;
  const char* type;
  property_info_area->GetPropertyInfo("notpersist.radio.something", &context, &type);
  EXPECT_STREQ("default", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("persist.nomatch", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("persist.dot_prefix.something", &context, &type);
  EXPECT_STREQ("2nd", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("persist.non_dot_prefix.something", &context, &type);
  EXPECT_STREQ("3rd", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("persist.exact_match", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("default", type);
  property_info_area->GetPropertyInfo("persist.dot_prefix2.something", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("4th", type);
  property_info_area->GetPropertyInfo("persist.non_dot_prefix2.something", &context, &type);
  EXPECT_STREQ("1st", context);
  EXPECT_STREQ("5th", type);
}

}  // namespace properties
}  // namespace android
