1eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok/*
2eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * Copyright (C) 2018 The Android Open Source Project
3eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok *
4eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * Licensed under the Apache License, Version 2.0 (the "License");
5eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * you may not use this file except in compliance with the License.
6eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * You may obtain a copy of the License at
7eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok *
8eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok *      http://www.apache.org/licenses/LICENSE-2.0
9eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok *
10eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * Unless required by applicable law or agreed to in writing, software
11eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * distributed under the License is distributed on an "AS IS" BASIS,
12eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * See the License for the specific language governing permissions and
14eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok * limitations under the License.
15eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok */
16eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
17eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok#ifndef _INIT_STABLE_PROPERTIES_H
18eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok#define _INIT_STABLE_PROPERTIES_H
19eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
20eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok#include <set>
21eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok#include <string>
22eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
23eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seoknamespace android {
24eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seoknamespace init {
25eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
26eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seokstatic constexpr const char* kPartnerPrefixes[] = {
27cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "init.svc.vendor.", "ro.vendor.", "persist.vendor.", "vendor.", "init.svc.odm.", "ro.odm.",
28cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "persist.odm.",     "odm.",       "ro.boot.",
29eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok};
30eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
31eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seokstatic const std::set<std::string> kExportedActionableProperties = {
3265ce3b2cd879e39d75012798eef348283ad8b4f3Jaekyun Seok    "dev.bootcomplete",
333b613ccedcf191c8e89595173b46f023805c64e3Jaekyun Seok    "init.svc.console",
34cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "init.svc.mediadrm",
3566797804c68eac46318e19e00bf86554d30eaadaJaekyun Seok    "init.svc.surfaceflinger",
36cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "init.svc.zygote",
37cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "persist.bluetooth.btsnoopenable",
38cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "persist.sys.crash_rcu",
3956f832e561a44b5ca6f989270899dc6c6a4f65b0Jaekyun Seok    "persist.sys.usb.usbradio.config",
40cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "persist.sys.zram_enabled",
41f328b0d9359a23e8ea3c1c5194ee0caa83dc5b67Jaekyun Seok    "ro.board.platform",
42cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "ro.bootmode",
43cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "ro.build.type",
4465ce3b2cd879e39d75012798eef348283ad8b4f3Jaekyun Seok    "ro.crypto.state",
4565ce3b2cd879e39d75012798eef348283ad8b4f3Jaekyun Seok    "ro.crypto.type",
46fce960cdf491d0de6101d76292eacab2c45b29dfJaekyun Seok    "ro.debuggable",
47cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.boot_completed",
48f328b0d9359a23e8ea3c1c5194ee0caa83dc5b67Jaekyun Seok    "sys.boot_from_charger_mode",
49cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.retaildemo.enabled",
50cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.shutdown.requested",
51cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.usb.config",
52cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.usb.configfs",
53cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.usb.ffs.mtp.ready",
54cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.usb.ffs.ready",
55cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.user.0.ce_available",
56cf2da29d66d641d3b2f27de886403b28804cbe7bJaekyun Seok    "sys.vdso",
5765ce3b2cd879e39d75012798eef348283ad8b4f3Jaekyun Seok    "vold.decrypt",
5865ce3b2cd879e39d75012798eef348283ad8b4f3Jaekyun Seok    "vold.post_fs_data_done",
59eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok    "vts.native_server.on",
6066797804c68eac46318e19e00bf86554d30eaadaJaekyun Seok    "wlan.driver.status",
61eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok};
62eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
63eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok}  // namespace init
64eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok}  // namespace android
65eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok
66eeb21885545f25606498feee0ad3f1f9b29e44e8Jaekyun Seok#endif
67