1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/public/browser/android/devtools_auth.h" 6 7 #include <unistd.h> 8 #include <sys/types.h> 9 10 #include "base/logging.h" 11 12 namespace content { 13 CanUserConnectToDevTools(uid_t uid,gid_t gid)14bool CanUserConnectToDevTools(uid_t uid, gid_t gid) { 15 struct passwd* creds = getpwuid(uid); 16 if (!creds || !creds->pw_name) { 17 LOG(WARNING) << "DevTools: can't obtain creds for uid " << uid; 18 return false; 19 } 20 if (gid == uid && 21 (strcmp("root", creds->pw_name) == 0 || // For rooted devices 22 strcmp("shell", creds->pw_name) == 0 || // For non-rooted devices 23 uid == getuid())) { // From processes signed with the same key 24 return true; 25 } 26 LOG(WARNING) << "DevTools: connection attempt from " << creds->pw_name; 27 return false; 28 } 29 30 } // namespace content 31