@@ -189,7 +189,7 @@ __attribute__((no_stack_protector)) static jint nativeForkAndSpecialize_samsung_
189189 rz_cleanup (& ctx );
190190 return ctx .pid ;
191191}
192- __attribute__((no_stack_protector )) static jint nativeForkAndSpecialize_grapheneos_u (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jintArray fds_to_close , jintArray fds_to_ignore , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides , jlongArray _17 ) {
192+ __attribute__((no_stack_protector )) static jint nativeForkAndSpecialize_grapheneos_u (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jintArray fds_to_close , jintArray fds_to_ignore , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides , jlongArray _20 ) {
193193 struct app_specialize_args_v5 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .rlimits = & rlimits , .mount_external = & mount_external , .se_info = & se_info , .nice_name = & nice_name , .instruction_set = & instruction_set , .app_data_dir = & app_data_dir };
194194 args .fds_to_ignore = & fds_to_ignore ;
195195 args .is_child_zygote = & is_child_zygote ;
@@ -203,7 +203,27 @@ __attribute__((no_stack_protector)) static jint nativeForkAndSpecialize_graphene
203203 rz_init (& ctx , env , & args );
204204 rz_nativeForkAndSpecialize_pre (& ctx );
205205 ((nativeForkAndSpecialize_fn )nativeForkAndSpecialize_orig )(
206- env , clazz , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , fds_to_close , fds_to_ignore , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides , _17
206+ env , clazz , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , fds_to_close , fds_to_ignore , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides , _20
207+ );
208+ rz_nativeForkAndSpecialize_post (& ctx );
209+ rz_cleanup (& ctx );
210+ return ctx .pid ;
211+ }
212+ __attribute__((no_stack_protector )) static jint nativeForkAndSpecialize_grapheneos_c (JNIEnv * env , jclass clazz , jlongArray _12 , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jintArray fds_to_close , jintArray fds_to_ignore , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jboolean _13 , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides ) {
213+ struct app_specialize_args_v5 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .rlimits = & rlimits , .mount_external = & mount_external , .se_info = & se_info , .nice_name = & nice_name , .instruction_set = & instruction_set , .app_data_dir = & app_data_dir };
214+ args .fds_to_ignore = & fds_to_ignore ;
215+ args .is_child_zygote = & is_child_zygote ;
216+ args .is_top_app = & is_top_app ;
217+ args .pkg_data_info_list = & pkg_data_info_list ;
218+ args .whitelisted_data_info_list = & whitelisted_data_info_list ;
219+ args .mount_data_dirs = & mount_data_dirs ;
220+ args .mount_storage_dirs = & mount_storage_dirs ;
221+ args .mount_sysprop_overrides = & mount_sysprop_overrides ;
222+ struct zygisk_context ctx ;
223+ rz_init (& ctx , env , & args );
224+ rz_nativeForkAndSpecialize_pre (& ctx );
225+ ((nativeForkAndSpecialize_fn )nativeForkAndSpecialize_orig )(
226+ env , clazz , _12 , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , fds_to_close , fds_to_ignore , is_child_zygote , instruction_set , app_data_dir , is_top_app , _13 , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides
207227 );
208228 rz_nativeForkAndSpecialize_post (& ctx );
209229 rz_cleanup (& ctx );
@@ -275,6 +295,11 @@ static JNINativeMethod nativeForkAndSpecialize_methods[] = {
275295 "(II[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;[Ljava/lang/String;ZZZ[J)I" ,
276296 (void * ) & nativeForkAndSpecialize_grapheneos_u
277297 },
298+ {
299+ "nativeForkAndSpecialize" ,
300+ "([JII[II[[IILjava/lang/String;Ljava/lang/String;[I[IZLjava/lang/String;Ljava/lang/String;ZZ[Ljava/lang/String;[Ljava/lang/String;ZZZ)I" ,
301+ (void * ) & nativeForkAndSpecialize_grapheneos_c
302+ },
278303};
279304
280305static void * nativeSpecializeAppProcess_orig = NULL ;
@@ -339,7 +364,7 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_u(JNI
339364 rz_nativeSpecializeAppProcess_post (& ctx );
340365 rz_cleanup (& ctx );
341366}
342- __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_c (JNIEnv * env , jclass clazz , jint uid , jint gid , jint _12 , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides ) {
367+ __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_c (JNIEnv * env , jclass clazz , jint uid , jint gid , jint _14 , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides ) {
343368 struct app_specialize_args_v5 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .rlimits = & rlimits , .mount_external = & mount_external , .se_info = & se_info , .nice_name = & nice_name , .instruction_set = & instruction_set , .app_data_dir = & app_data_dir };
344369 args .is_child_zygote = & is_child_zygote ;
345370 args .is_top_app = & is_top_app ;
@@ -352,24 +377,42 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_c(JNI
352377 rz_init (& ctx , env , & args );
353378 rz_nativeSpecializeAppProcess_pre (& ctx );
354379 ((nativeSpecializeAppProcess_fn )nativeSpecializeAppProcess_orig )(
355- env , clazz , uid , gid , _12 , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides
380+ env , clazz , uid , gid , _14 , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides
381+ );
382+ rz_nativeSpecializeAppProcess_post (& ctx );
383+ rz_cleanup (& ctx );
384+ }
385+ __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_samsung_q (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jint _15 , jint _16 , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir ) {
386+ struct app_specialize_args_v5 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .rlimits = & rlimits , .mount_external = & mount_external , .se_info = & se_info , .nice_name = & nice_name , .instruction_set = & instruction_set , .app_data_dir = & app_data_dir };
387+ args .is_child_zygote = & is_child_zygote ;
388+ struct zygisk_context ctx ;
389+ rz_init (& ctx , env , & args );
390+ rz_nativeSpecializeAppProcess_pre (& ctx );
391+ ((nativeSpecializeAppProcess_fn )nativeSpecializeAppProcess_orig )(
392+ env , clazz , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , _15 , _16 , nice_name , is_child_zygote , instruction_set , app_data_dir
356393 );
357394 rz_nativeSpecializeAppProcess_post (& ctx );
358395 rz_cleanup (& ctx );
359396}
360- __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_samsung_q (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jint _13 , jint _14 , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir ) {
397+ __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_grapheneos_u (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides , jlongArray _21 ) {
361398 struct app_specialize_args_v5 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .rlimits = & rlimits , .mount_external = & mount_external , .se_info = & se_info , .nice_name = & nice_name , .instruction_set = & instruction_set , .app_data_dir = & app_data_dir };
362399 args .is_child_zygote = & is_child_zygote ;
400+ args .is_top_app = & is_top_app ;
401+ args .pkg_data_info_list = & pkg_data_info_list ;
402+ args .whitelisted_data_info_list = & whitelisted_data_info_list ;
403+ args .mount_data_dirs = & mount_data_dirs ;
404+ args .mount_storage_dirs = & mount_storage_dirs ;
405+ args .mount_sysprop_overrides = & mount_sysprop_overrides ;
363406 struct zygisk_context ctx ;
364407 rz_init (& ctx , env , & args );
365408 rz_nativeSpecializeAppProcess_pre (& ctx );
366409 ((nativeSpecializeAppProcess_fn )nativeSpecializeAppProcess_orig )(
367- env , clazz , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , _13 , _14 , nice_name , is_child_zygote , instruction_set , app_data_dir
410+ env , clazz , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides , _21
368411 );
369412 rz_nativeSpecializeAppProcess_post (& ctx );
370413 rz_cleanup (& ctx );
371414}
372- __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_grapheneos_u (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides , jlongArray _18 ) {
415+ __attribute__((no_stack_protector )) static void nativeSpecializeAppProcess_grapheneos_c (JNIEnv * env , jclass clazz , jlongArray _17 , jint uid , jint gid , jintArray gids , jint runtime_flags , jobjectArray rlimits , jint mount_external , jstring se_info , jstring nice_name , jboolean is_child_zygote , jstring instruction_set , jstring app_data_dir , jboolean is_top_app , jobjectArray pkg_data_info_list , jobjectArray whitelisted_data_info_list , jboolean mount_data_dirs , jboolean mount_storage_dirs , jboolean mount_sysprop_overrides ) {
373416 struct app_specialize_args_v5 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .rlimits = & rlimits , .mount_external = & mount_external , .se_info = & se_info , .nice_name = & nice_name , .instruction_set = & instruction_set , .app_data_dir = & app_data_dir };
374417 args .is_child_zygote = & is_child_zygote ;
375418 args .is_top_app = & is_top_app ;
@@ -382,7 +425,7 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_graph
382425 rz_init (& ctx , env , & args );
383426 rz_nativeSpecializeAppProcess_pre (& ctx );
384427 ((nativeSpecializeAppProcess_fn )nativeSpecializeAppProcess_orig )(
385- env , clazz , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides , _18
428+ env , clazz , _17 , uid , gid , gids , runtime_flags , rlimits , mount_external , se_info , nice_name , is_child_zygote , instruction_set , app_data_dir , is_top_app , pkg_data_info_list , whitelisted_data_info_list , mount_data_dirs , mount_storage_dirs , mount_sysprop_overrides
386429 );
387430 rz_nativeSpecializeAppProcess_post (& ctx );
388431 rz_cleanup (& ctx );
@@ -423,6 +466,11 @@ static JNINativeMethod nativeSpecializeAppProcess_methods[] = {
423466 "(II[II[[IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;[Ljava/lang/String;ZZZ[J)V" ,
424467 (void * ) & nativeSpecializeAppProcess_grapheneos_u
425468 },
469+ {
470+ "nativeSpecializeAppProcess" ,
471+ "([JII[II[[IILjava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Z[Ljava/lang/String;[Ljava/lang/String;ZZZ)V" ,
472+ (void * ) & nativeSpecializeAppProcess_grapheneos_c
473+ },
426474};
427475
428476static void * nativeForkSystemServer_orig = NULL ;
@@ -439,13 +487,13 @@ __attribute__((no_stack_protector)) static jint nativeForkSystemServer_l(JNIEnv
439487 rz_cleanup (& ctx );
440488 return ctx .pid ;
441489}
442- __attribute__((no_stack_protector )) static jint nativeForkSystemServer_samsung_q (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jint _15 , jint _16 , jobjectArray rlimits , jlong permitted_capabilities , jlong effective_capabilities ) {
490+ __attribute__((no_stack_protector )) static jint nativeForkSystemServer_samsung_q (JNIEnv * env , jclass clazz , jint uid , jint gid , jintArray gids , jint runtime_flags , jint _18 , jint _19 , jobjectArray rlimits , jlong permitted_capabilities , jlong effective_capabilities ) {
443491 struct server_specialize_args_v1 args = { .uid = & uid , .gid = & gid , .gids = & gids , .runtime_flags = & runtime_flags , .permitted_capabilities = & permitted_capabilities , .effective_capabilities = & effective_capabilities };
444492 struct zygisk_context ctx ;
445493 rz_init (& ctx , env , & args );
446494 rz_nativeForkSystemServer_pre (& ctx );
447495 ((nativeForkSystemServer_fn )nativeForkSystemServer_orig )(
448- env , clazz , uid , gid , gids , runtime_flags , _15 , _16 , rlimits , permitted_capabilities , effective_capabilities
496+ env , clazz , uid , gid , gids , runtime_flags , _18 , _19 , rlimits , permitted_capabilities , effective_capabilities
449497 );
450498 rz_nativeForkSystemServer_post (& ctx );
451499 rz_cleanup (& ctx );
0 commit comments