init_gsi: statically link resetprop

This commit is contained in:
Peter Cai 2021-10-11 21:57:50 -04:00
parent aaba77ede8
commit f23c2fc06a
4 changed files with 59 additions and 60 deletions

View File

@ -26,10 +26,6 @@ PRODUCT_SOONG_NAMESPACES += device/peter/gsi
PRODUCT_PROPERTY_OVERRIDES += \
ro.setupwizard.mode=OPTIONAL
# Resetprop
PRODUCT_PACKAGES += \
resetprop_sys
# Init
PRODUCT_PACKAGES += \
init_gsi

View File

@ -3,5 +3,12 @@ cc_binary {
system_ext_specific: true,
srcs: ["init_gsi.cpp"],
shared_libs: ["libbase", "libdl", "libutils"],
static_libs: ["libresetprop"],
init_rc: ["init_gsi.rc"],
target: {
android: {
ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"],
},
},
bootstrap: true,
}

View File

@ -4,20 +4,11 @@
#include <string>
#include <iostream>
#include <sys/wait.h>
using namespace android;
using namespace std;
template<typename... Args>
void fork_execl(Args... args) {
int pid, status;
if ((pid = fork()) == 0) {
execl(args..., nullptr);
} else {
waitpid(pid, &status, 0);
}
}
// From libresetprop
extern int setprop(const char *name, const char *value, bool trigger);
void override_ro_prop(string prefix, string source, string postfix, string value) {
if (value.length() == 0) return;
@ -33,7 +24,7 @@ void override_ro_prop(string prefix, string source, string postfix, string value
std::cout << prop << std::endl;
std::cout << value << std::endl;
fork_execl("/system/system_ext/bin/resetprop_sys", "resetprop_sys", prop.c_str(), value.c_str());
setprop(prop.c_str(), value.c_str(), true);
}
std::string RO_PROP_SOURCES[] = {

View File

@ -1,50 +1,55 @@
cc_library_static {
name: "libresetprop",
srcs: [
//nanopb
"Magisk/native/jni/external/nanopb/pb_common.c",
"Magisk/native/jni/external/nanopb/pb_encode.c",
"Magisk/native/jni/external/nanopb/pb_decode.c",
//Magisk resetprop
"Magisk/native/jni/resetprop/resetprop.cpp",
"Magisk/native/jni/resetprop/persist_properties.cpp",
"Magisk/native/jni/resetprop/system_property_api.cpp",
"Magisk/native/jni/resetprop/system_property_set.cpp",
//Systemproperties
"Magisk/native/jni/systemproperties/context_node.cpp",
"Magisk/native/jni/systemproperties/contexts_serialized.cpp",
"Magisk/native/jni/systemproperties/contexts_split.cpp",
"Magisk/native/jni/systemproperties/prop_area.cpp",
"Magisk/native/jni/systemproperties/prop_info.cpp",
"Magisk/native/jni/systemproperties/property_info_parser.cpp",
"Magisk/native/jni/systemproperties/system_properties.cpp",
//Magisk utils
"Magisk/native/jni/utils/file.cpp",
"Magisk/native/jni/utils/logging.cpp",
"Magisk/native/jni/utils/misc.cpp",
"Magisk/native/jni/utils/selinux.cpp",
"Magisk/native/jni/utils/xwrap.cpp",
],
local_include_dirs: [
"Magisk/native/jni/include",
"Magisk/native/jni/utils/include",
"Magisk/native/jni/",
"Magisk/native/jni/resetprop/",
"Magisk/native/jni/systemproperties/include/",
"Magisk/native/jni/external/nanopb/",
],
}
cc_binary {
name: "resetprop_sys",
system_ext_specific: true,
srcs: [
//nanopb
"Magisk/native/jni/external/nanopb/pb_common.c",
"Magisk/native/jni/external/nanopb/pb_encode.c",
"Magisk/native/jni/external/nanopb/pb_decode.c",
//Magisk resetprop
"Magisk/native/jni/resetprop/resetprop.cpp",
"Magisk/native/jni/resetprop/persist_properties.cpp",
"Magisk/native/jni/resetprop/system_property_api.cpp",
"Magisk/native/jni/resetprop/system_property_set.cpp",
//Systemproperties
"Magisk/native/jni/systemproperties/context_node.cpp",
"Magisk/native/jni/systemproperties/contexts_serialized.cpp",
"Magisk/native/jni/systemproperties/contexts_split.cpp",
"Magisk/native/jni/systemproperties/prop_area.cpp",
"Magisk/native/jni/systemproperties/prop_info.cpp",
"Magisk/native/jni/systemproperties/property_info_parser.cpp",
"Magisk/native/jni/systemproperties/system_properties.cpp",
//Magisk utils
"Magisk/native/jni/utils/file.cpp",
"Magisk/native/jni/utils/logging.cpp",
"Magisk/native/jni/utils/misc.cpp",
"Magisk/native/jni/utils/selinux.cpp",
"Magisk/native/jni/utils/xwrap.cpp",
//glue
"resetprop.cpp",
],
local_include_dirs: [
"Magisk/native/jni/include",
"Magisk/native/jni/utils/include",
"Magisk/native/jni/",
"Magisk/native/jni/resetprop/",
"Magisk/native/jni/systemproperties/include/",
"Magisk/native/jni/external/nanopb/",
],
bootstrap: true,
name: "resetprop_sys",
system_ext_specific: true,
srcs: [
//glue
"resetprop.cpp",
],
static_libs: ["libresetprop"],
target: {
android: {
ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"],
},
},
},
bootstrap: true,
}