1f4d95296a
Typical usage is 'run-as <package-name> <command>' to run <command> in the data directory, and the user id, of <package-name> if, and only if <package-name> is the name of an installed and debuggable application. This relies on the /data/system/packages.list file generated by the PackageManager service. BEWARE: This is intended to be available on production devices !
41 lines
1.1 KiB
C
41 lines
1.1 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];
|
|
} PackageInfo;
|
|
|
|
/* see documentation in package.c for these functiosn */
|
|
|
|
extern int get_package_info(const char* packageName, PackageInfo* info);
|
|
|
|
extern int check_data_path(const char* dataDir, uid_t uid);
|
|
|
|
#endif /* RUN_AS_PACKAGE_H */
|