Loading adb/adb.c +2 −1 Original line number Diff line number Diff line Loading @@ -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" */ Loading adb/services.c +15 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading
adb/adb.c +2 −1 Original line number Diff line number Diff line Loading @@ -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" */ Loading
adb/services.c +15 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading