init_gsi: statically link resetprop
This commit is contained in:
parent
aaba77ede8
commit
f23c2fc06a
|
@ -26,10 +26,6 @@ PRODUCT_SOONG_NAMESPACES += device/peter/gsi
|
||||||
PRODUCT_PROPERTY_OVERRIDES += \
|
PRODUCT_PROPERTY_OVERRIDES += \
|
||||||
ro.setupwizard.mode=OPTIONAL
|
ro.setupwizard.mode=OPTIONAL
|
||||||
|
|
||||||
# Resetprop
|
|
||||||
PRODUCT_PACKAGES += \
|
|
||||||
resetprop_sys
|
|
||||||
|
|
||||||
# Init
|
# Init
|
||||||
PRODUCT_PACKAGES += \
|
PRODUCT_PACKAGES += \
|
||||||
init_gsi
|
init_gsi
|
||||||
|
|
|
@ -3,5 +3,12 @@ cc_binary {
|
||||||
system_ext_specific: true,
|
system_ext_specific: true,
|
||||||
srcs: ["init_gsi.cpp"],
|
srcs: ["init_gsi.cpp"],
|
||||||
shared_libs: ["libbase", "libdl", "libutils"],
|
shared_libs: ["libbase", "libdl", "libutils"],
|
||||||
|
static_libs: ["libresetprop"],
|
||||||
init_rc: ["init_gsi.rc"],
|
init_rc: ["init_gsi.rc"],
|
||||||
|
target: {
|
||||||
|
android: {
|
||||||
|
ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
bootstrap: true,
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,20 +4,11 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <sys/wait.h>
|
|
||||||
|
|
||||||
using namespace android;
|
using namespace android;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
template<typename... Args>
|
// From libresetprop
|
||||||
void fork_execl(Args... args) {
|
extern int setprop(const char *name, const char *value, bool trigger);
|
||||||
int pid, status;
|
|
||||||
if ((pid = fork()) == 0) {
|
|
||||||
execl(args..., nullptr);
|
|
||||||
} else {
|
|
||||||
waitpid(pid, &status, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void override_ro_prop(string prefix, string source, string postfix, string value) {
|
void override_ro_prop(string prefix, string source, string postfix, string value) {
|
||||||
if (value.length() == 0) return;
|
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 << prop << std::endl;
|
||||||
std::cout << value << 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[] = {
|
std::string RO_PROP_SOURCES[] = {
|
||||||
|
|
|
@ -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 {
|
cc_binary {
|
||||||
name: "resetprop_sys",
|
name: "resetprop_sys",
|
||||||
system_ext_specific: true,
|
system_ext_specific: true,
|
||||||
srcs: [
|
srcs: [
|
||||||
//nanopb
|
//glue
|
||||||
"Magisk/native/jni/external/nanopb/pb_common.c",
|
"resetprop.cpp",
|
||||||
"Magisk/native/jni/external/nanopb/pb_encode.c",
|
],
|
||||||
"Magisk/native/jni/external/nanopb/pb_decode.c",
|
static_libs: ["libresetprop"],
|
||||||
|
|
||||||
//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,
|
|
||||||
target: {
|
target: {
|
||||||
android: {
|
android: {
|
||||||
ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"],
|
ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
bootstrap: true,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue