Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fb7f773 authored by Yifan Hong's avatar Yifan Hong
Browse files

init: hack for /charger symlink

Legacy symlink from /charger to /system/bin/charger is
removed. Instead, all Android R devices are required
to use /system/bin/charger instead.

See hardware/interfaces/health/2.1/README.md for details.

Bug: 142286265
Test: charger mode
Change-Id: Ib478a864ef68647bc9fc14650ca3d382952b80c8
parent 8578a8a8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@

// android/api-level.h
#define __ANDROID_API_P__ 28
#define __ANDROID_API_Q__ 29
#define __ANDROID_API_R__ 30

// sys/system_properties.h
+5 −0
Original line number Diff line number Diff line
@@ -560,6 +560,11 @@ Result<void> ServiceParser::ParseSection(std::vector<std::string>&& args,
            str_args[0] = "/system/bin/watchdogd";
        }
    }
    if (SelinuxGetVendorAndroidVersion() <= __ANDROID_API_Q__) {
        if (str_args[0] == "/charger") {
            str_args[0] = "/system/bin/charger";
        }
    }

    service_ = std::make_unique<Service>(name, restart_action_subcontext, str_args);
    return {};
+2 −2
Original line number Diff line number Diff line
@@ -61,8 +61,8 @@ TEST(util, ReadFileWorldWiteable) {

TEST(util, ReadFileSymbolicLink) {
    errno = 0;
    // lrwxrwxrwx 1 root root 13 1970-01-01 00:00 charger -> /sbin/healthd
    auto file_contents = ReadFile("/charger");
    // lrw------- 1 root root 23 2008-12-31 19:00 default.prop -> system/etc/prop.default
    auto file_contents = ReadFile("/default.prop");
    EXPECT_EQ(ELOOP, errno);
    ASSERT_FALSE(file_contents);
    EXPECT_EQ("open() failed: Too many symbolic links encountered",