a08d313bb8
1. Calculate AID for spawned process as (100000 * $user) + uid_from_packages.list
2. Use /data/user/$user/$packageDir as a root of a new process if $user != 0.
Change-Id: I761dfb481114bd51e5a950307fcaf403e96eef10
(cherry picked from commit da31778f3b
)
44 lines
1.2 KiB
C
44 lines
1.2 KiB
C
/*
|
|
**
|
|
** Copyright 2010, The Android Open Source Project
|
|
**
|
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
** you may not use this file except in compliance with the License.
|
|
** You may obtain a copy of the License at
|
|
**
|
|
** http://www.apache.org/licenses/LICENSE-2.0
|
|
**
|
|
** Unless required by applicable law or agreed to in writing, software
|
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
** See the License for the specific language governing permissions and
|
|
** limitations under the License.
|
|
*/
|
|
#ifndef RUN_AS_PACKAGE_H
|
|
#define RUN_AS_PACKAGE_H
|
|
|
|
#include <limits.h>
|
|
#include <sys/types.h>
|
|
|
|
typedef enum {
|
|
PACKAGE_IS_DEBUGGABLE = 0,
|
|
PACKAGE_IS_NOT_DEBUGGABLE,
|
|
PACKAGE_IS_UNKNOWN,
|
|
} PackageStatus;
|
|
|
|
typedef struct {
|
|
uid_t uid;
|
|
char isDebuggable;
|
|
char dataDir[PATH_MAX];
|
|
char seinfo[PATH_MAX];
|
|
} PackageInfo;
|
|
|
|
/* see documentation in package.c for these functions */
|
|
|
|
extern int get_package_info(const char* packageName,
|
|
uid_t userId,
|
|
PackageInfo* info);
|
|
|
|
extern int check_data_path(const char* dataDir, uid_t uid);
|
|
|
|
#endif /* RUN_AS_PACKAGE_H */
|