Lines Matching defs:env

83 static void RuntimeAbort(JNIEnv* env, int line, const char* msg) {
86 env->FatalError(oss.str().c_str());
173 static void SetGids(JNIEnv* env, jintArray javaGids) {
178 ScopedIntArrayRO gids(env, javaGids);
180 RuntimeAbort(env, __LINE__, "Getting gids int array failed");
186 RuntimeAbort(env, __LINE__, oss.str().c_str());
194 static void SetRLimits(JNIEnv* env, jobjectArray javaRlimits) {
202 for (int i = 0; i < env->GetArrayLength(javaRlimits); ++i) {
203 ScopedLocalRef<jobject> javaRlimitObject(env, env->GetObjectArrayElement(javaRlimits, i));
204 ScopedIntArrayRO javaRlimit(env, reinterpret_cast<jintArray>(javaRlimitObject.get()));
206 RuntimeAbort(env, __LINE__, "rlimits array must have a second dimension of size 3");
216 RuntimeAbort(env, __LINE__, "setrlimit failed");
224 static void EnableKeepCapabilities(JNIEnv* env) {
227 RuntimeAbort(env, __LINE__, "prctl(PR_SET_KEEPCAPS) failed");
231 static void DropCapabilitiesBoundingSet(JNIEnv* env) {
240 RuntimeAbort(env, __LINE__, "prctl(PR_CAPBSET_DROP) failed");
246 static void SetInheritable(JNIEnv* env, uint64_t inheritable) {
255 RuntimeAbort(env, __LINE__, "capget failed");
263 RuntimeAbort(env, __LINE__, "capset failed");
267 static void SetCapabilities(JNIEnv* env, uint64_t permitted, uint64_t effective,
286 RuntimeAbort(env, __LINE__, "capset failed");
290 static void SetSchedulerPolicy(JNIEnv* env) {
294 RuntimeAbort(env, __LINE__, "set_sched_policy(0, SP_DEFAULT) failed");
401 static void DetachDescriptors(JNIEnv* env, jintArray fdsToClose) {
405 jsize count = env->GetArrayLength(fdsToClose);
406 ScopedIntArrayRO ar(env, fdsToClose);
408 RuntimeAbort(env, __LINE__, "Bad fd array");
416 RuntimeAbort(env, __LINE__, "Failed to open /dev/null");
422 RuntimeAbort(env, __LINE__, "Failed dup2()");
458 static void FillFileDescriptorVector(JNIEnv* env,
463 ScopedIntArrayRO ar(env, java_fds);
465 RuntimeAbort(env, __LINE__, "Bad fd array");
475 static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray javaGids,
496 RuntimeAbort(env, __LINE__, "Call to sigprocmask(SIG_BLOCK, { SIGCHLD }) failed.");
507 FillFileDescriptorVector(env, fdsToIgnore, &fds_to_ignore);
511 RuntimeAbort(env, __LINE__, "Unable to construct file descriptor table.");
514 RuntimeAbort(env, __LINE__, "Unable to restat file descriptor table.");
527 DetachDescriptors(env, fdsToClose);
532 RuntimeAbort(env, __LINE__, "Unable to reopen whitelisted descriptors.");
537 RuntimeAbort(env, __LINE__, "Call to sigprocmask(SIG_UNBLOCK, { SIGCHLD }) failed.");
542 EnableKeepCapabilities(env);
545 SetInheritable(env, permittedCapabilities);
546 DropCapabilitiesBoundingSet(env);
551 ScopedUtfChars isa_string(env, instructionSet);
572 RuntimeAbort(env, __LINE__, "Cannot continue without emulated storage");
587 SetGids(env, javaGids);
589 SetRLimits(env, javaRlimits);
592 ScopedUtfChars isa_string(env, instructionSet);
593 ScopedUtfChars data_dir(env, dataDir);
600 RuntimeAbort(env, __LINE__, "setresgid failed");
606 RuntimeAbort(env, __LINE__, "setresuid failed");
618 SetCapabilities(env, permittedCapabilities, effectiveCapabilities, permittedCapabilities);
620 SetSchedulerPolicy(env);
625 se_info = new ScopedUtfChars(env, java_se_info);
628 RuntimeAbort(env, __LINE__, "se_info_c_str == NULL");
634 se_name = new ScopedUtfChars(env, java_se_name);
637 RuntimeAbort(env, __LINE__, "se_name_c_str == NULL");
644 RuntimeAbort(env, __LINE__, "selinux_android_setcontext failed");
661 env->CallStaticVoidMethod(gZygoteClass, gCallPostForkChildHooks, debug_flags,
663 if (env->ExceptionCheck()) {
664 RuntimeAbort(env, __LINE__, "Error calling post fork hooks.");
672 RuntimeAbort(env, __LINE__, "Call to sigprocmask(SIG_UNBLOCK, { SIGCHLD }) failed.");
682 JNIEnv* env, jclass, jint uid, jint gid, jintArray gids,
707 jsize gids_num = env->GetArrayLength(gids);
708 ScopedIntArrayRO ar(env, gids);
710 RuntimeAbort(env, __LINE__, "Bad gids array");
723 return ForkAndSpecializeCommon(env, uid, gid, gids, debug_flags,
729 JNIEnv* env, jclass, uid_t uid, gid_t gid, jintArray gids,
732 pid_t pid = ForkAndSpecializeCommon(env, uid, gid, gids,
747 RuntimeAbort(env, __LINE__, "System server process has died. Restarting Zygote!");
754 JNIEnv* env, jclass, jstring path) {
755 ScopedUtfChars path_native(env, path);
758 RuntimeAbort(env, __LINE__, "path_cstr == NULL");
763 static void com_android_internal_os_Zygote_nativeUnmountStorageOnInit(JNIEnv* env, jclass) {
772 RuntimeAbort(env, __LINE__, "Failed to unshare()");
779 RuntimeAbort(env, __LINE__, "Failed to mount() rootfs as MS_SLAVE");
792 RuntimeAbort(env, __LINE__, "Failed to mount tmpfs");
813 int register_com_android_internal_os_Zygote(JNIEnv* env) {
814 gZygoteClass = MakeGlobalRefOrDie(env, FindClassOrDie(env, kZygoteClassName));
815 gCallPostForkChildHooks = GetStaticMethodIDOrDie(env, gZygoteClass, "callPostForkChildHooks",
818 return RegisterMethodsOrDie(env, "com/android/internal/os/Zygote", gMethods, NELEM(gMethods));