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

Commit d969faa1 authored by Mike Lockwood's avatar Mike Lockwood
Browse files

adb: Attempt to unmount the SD card before rebooting.



Change-Id: Idd4d96b4704f4e1bd324e72bca87611a23e30801
Signed-off-by: default avatarMike Lockwood <lockwood@android.com>
parent a9db22f1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -895,9 +895,10 @@ int adb_main(int is_daemon)
        ** AID_GRAPHICS to access the frame buffer
        ** AID_NET_BT and AID_NET_BT_ADMIN to diagnose bluetooth (hcidump)
        ** AID_SDCARD_RW to allow writing to the SD card
        ** AID_MOUNT to allow unmounting the SD card before rebooting
        */
        gid_t groups[] = { AID_ADB, AID_LOG, AID_INPUT, AID_INET, AID_GRAPHICS,
                           AID_NET_BT, AID_NET_BT_ADMIN, AID_SDCARD_RW };
                           AID_NET_BT, AID_NET_BT_ADMIN, AID_SDCARD_RW, AID_MOUNT };
        setgroups(sizeof(groups)/sizeof(groups[0]), groups);

        /* then switch user and group to "shell" */
+15 −1
Original line number Diff line number Diff line
@@ -176,9 +176,23 @@ void restart_usb_service(int fd, void *cookie)
void reboot_service(int fd, void *arg)
{
    char buf[100];
    int ret;
    int pid, ret;

    sync();

    /* Attempt to unmount the SD card first.
     * No need to bother checking for errors.
     */
    pid = fork();
    if (pid == 0) {
        /* ask vdc to unmount it */
        execl("/system/bin/vdc", "/system/bin/vdc", "volume", "unmount",
                getenv("EXTERNAL_STORAGE"), "force", NULL);
    } else if (pid > 0) {
        /* wait until vdc succeeds or fails */
        waitpid(pid, &ret, 0);
    }

    ret = __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
                    LINUX_REBOOT_CMD_RESTART2, (char *)arg);
    if (ret < 0) {