Skip to content

Commit e10115a

Browse files
authored
improve: group GrapheneOS JNI hook definitions (#381)
This commit makes the GrapheneOS JNI hook definitions organization and comments consistent with the rest of the JNI hook defs.
1 parent e42886f commit e10115a

2 files changed

Lines changed: 26 additions & 23 deletions

File tree

‎loader/src/injector/gen_jni_hooks.py‎

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,12 @@ def init_args(self):
205205
Anon(jboolean), is_top_app, pkg_data_info_list, whitelisted_data_info_list,
206206
mount_data_dirs, mount_storage_dirs, mount_sysprop_overrides])
207207

208+
# INFO: GrapheneOS Android 14-16
209+
fas_grapheneos_u = ForkAndSpec('grapheneos_u', [uid, gid, gids, runtime_flags, rlimits, mount_external,
210+
se_info, nice_name, fds_to_close, fds_to_ignore, is_child_zygote, instruction_set, app_data_dir,
211+
is_top_app, pkg_data_info_list, whitelisted_data_info_list, mount_data_dirs, mount_storage_dirs,
212+
mount_sysprop_overrides, Anon(jlongArray)])
213+
208214
# INFO: GrapheneOS Android 17
209215
fas_grapheneos_c = ForkAndSpec('grapheneos_c', [Anon(jlongArray), uid, gid, gids, runtime_flags,
210216
rlimits, mount_external, se_info, nice_name, fds_to_close, fds_to_ignore, is_child_zygote,
@@ -234,6 +240,12 @@ def init_args(self):
234240
spec_samsung_q = SpecApp('samsung_q', [uid, gid, gids, runtime_flags, rlimits, mount_external,
235241
se_info, Anon(jint), Anon(jint), nice_name, is_child_zygote, instruction_set, app_data_dir])
236242

243+
# INFO: GrapheneOS Android 14-16
244+
spec_grapheneos_u = SpecApp('grapheneos_u', [uid, gid, gids, runtime_flags, rlimits, mount_external,
245+
se_info, nice_name, is_child_zygote, instruction_set, app_data_dir, is_top_app,
246+
pkg_data_info_list, whitelisted_data_info_list, mount_data_dirs, mount_storage_dirs,
247+
mount_sysprop_overrides, Anon(jlongArray)])
248+
237249
# INFO: GrapheneOS Android 17
238250
spec_grapheneos_c = SpecApp('grapheneos_c', [Anon(jlongArray), uid, gid, gids, runtime_flags,
239251
rlimits, mount_external, se_info, nice_name, is_child_zygote, instruction_set, app_data_dir,
@@ -246,15 +258,6 @@ def init_args(self):
246258
server_samsung_q = ForkServer('samsung_q', [uid, gid, gids, runtime_flags, Anon(jint), Anon(jint), rlimits,
247259
permitted_capabilities, effective_capabilities])
248260

249-
# GrapheneOS Android 14 Support
250-
fas_grapheneos_u = ForkAndSpec('grapheneos_u', [uid, gid, gids, runtime_flags, rlimits, mount_external,
251-
se_info, nice_name, fds_to_close, fds_to_ignore, is_child_zygote, instruction_set, app_data_dir,
252-
is_top_app, pkg_data_info_list, whitelisted_data_info_list, mount_data_dirs, mount_storage_dirs, mount_sysprop_overrides, Anon(jlongArray)])
253-
254-
spec_grapheneos_u = SpecApp('grapheneos_u', [uid, gid, gids, runtime_flags, rlimits, mount_external,
255-
se_info, nice_name, is_child_zygote, instruction_set, app_data_dir, is_top_app, pkg_data_info_list,
256-
whitelisted_data_info_list, mount_data_dirs, mount_storage_dirs, mount_sysprop_overrides, Anon(jlongArray)])
257-
258261
hook_map = {}
259262

260263
def gen_jni_def(clz, methods):

‎loader/src/injector/jni_hooks.h‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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 _20) {
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 _12) {
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,13 +203,13 @@ __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, _20
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, _12
207207
);
208208
rz_nativeForkAndSpecialize_post(&ctx);
209209
rz_cleanup(&ctx);
210210
return ctx.pid;
211211
}
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) {
212+
__attribute__((no_stack_protector)) static jint nativeForkAndSpecialize_grapheneos_c(JNIEnv *env, jclass clazz, jlongArray _13, 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 _14, jobjectArray pkg_data_info_list, jobjectArray whitelisted_data_info_list, jboolean mount_data_dirs, jboolean mount_storage_dirs, jboolean mount_sysprop_overrides) {
213213
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 };
214214
args.fds_to_ignore = &fds_to_ignore;
215215
args.is_child_zygote = &is_child_zygote;
@@ -223,7 +223,7 @@ __attribute__((no_stack_protector)) static jint nativeForkAndSpecialize_graphene
223223
rz_init(&ctx, env, &args);
224224
rz_nativeForkAndSpecialize_pre(&ctx);
225225
((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
226+
env, clazz, _13, 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, _14, pkg_data_info_list, whitelisted_data_info_list, mount_data_dirs, mount_storage_dirs, mount_sysprop_overrides
227227
);
228228
rz_nativeForkAndSpecialize_post(&ctx);
229229
rz_cleanup(&ctx);
@@ -364,7 +364,7 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_u(JNI
364364
rz_nativeSpecializeAppProcess_post(&ctx);
365365
rz_cleanup(&ctx);
366366
}
367-
__attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_c(JNIEnv *env, jclass clazz, jint uid, jint _14, 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) {
367+
__attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_c(JNIEnv *env, jclass clazz, jint uid, jint _15, 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) {
368368
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 };
369369
args.is_child_zygote = &is_child_zygote;
370370
args.is_top_app = &is_top_app;
@@ -377,24 +377,24 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_c(JNI
377377
rz_init(&ctx, env, &args);
378378
rz_nativeSpecializeAppProcess_pre(&ctx);
379379
((nativeSpecializeAppProcess_fn)nativeSpecializeAppProcess_orig)(
380-
env, clazz, uid, _14, 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
380+
env, clazz, uid, _15, 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
381381
);
382382
rz_nativeSpecializeAppProcess_post(&ctx);
383383
rz_cleanup(&ctx);
384384
}
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) {
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 _16, jint _17, jstring nice_name, jboolean is_child_zygote, jstring instruction_set, jstring app_data_dir) {
386386
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 };
387387
args.is_child_zygote = &is_child_zygote;
388388
struct zygisk_context ctx;
389389
rz_init(&ctx, env, &args);
390390
rz_nativeSpecializeAppProcess_pre(&ctx);
391391
((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
392+
env, clazz, uid, gid, gids, runtime_flags, rlimits, mount_external, se_info, _16, _17, nice_name, is_child_zygote, instruction_set, app_data_dir
393393
);
394394
rz_nativeSpecializeAppProcess_post(&ctx);
395395
rz_cleanup(&ctx);
396396
}
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) {
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 _18) {
398398
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 };
399399
args.is_child_zygote = &is_child_zygote;
400400
args.is_top_app = &is_top_app;
@@ -407,12 +407,12 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_graph
407407
rz_init(&ctx, env, &args);
408408
rz_nativeSpecializeAppProcess_pre(&ctx);
409409
((nativeSpecializeAppProcess_fn)nativeSpecializeAppProcess_orig)(
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
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, _18
411411
);
412412
rz_nativeSpecializeAppProcess_post(&ctx);
413413
rz_cleanup(&ctx);
414414
}
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) {
415+
__attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_grapheneos_c(JNIEnv *env, jclass clazz, jlongArray _19, 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) {
416416
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 };
417417
args.is_child_zygote = &is_child_zygote;
418418
args.is_top_app = &is_top_app;
@@ -425,7 +425,7 @@ __attribute__((no_stack_protector)) static void nativeSpecializeAppProcess_graph
425425
rz_init(&ctx, env, &args);
426426
rz_nativeSpecializeAppProcess_pre(&ctx);
427427
((nativeSpecializeAppProcess_fn)nativeSpecializeAppProcess_orig)(
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
428+
env, clazz, _19, 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
429429
);
430430
rz_nativeSpecializeAppProcess_post(&ctx);
431431
rz_cleanup(&ctx);
@@ -487,13 +487,13 @@ __attribute__((no_stack_protector)) static jint nativeForkSystemServer_l(JNIEnv
487487
rz_cleanup(&ctx);
488488
return ctx.pid;
489489
}
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) {
490+
__attribute__((no_stack_protector)) static jint nativeForkSystemServer_samsung_q(JNIEnv *env, jclass clazz, jint uid, jint gid, jintArray gids, jint runtime_flags, jint _20, jint _21, jobjectArray rlimits, jlong permitted_capabilities, jlong effective_capabilities) {
491491
struct server_specialize_args_v1 args = { .uid = &uid, .gid = &gid, .gids = &gids, .runtime_flags = &runtime_flags, .permitted_capabilities = &permitted_capabilities, .effective_capabilities = &effective_capabilities };
492492
struct zygisk_context ctx;
493493
rz_init(&ctx, env, &args);
494494
rz_nativeForkSystemServer_pre(&ctx);
495495
((nativeForkSystemServer_fn)nativeForkSystemServer_orig)(
496-
env, clazz, uid, gid, gids, runtime_flags, _18, _19, rlimits, permitted_capabilities, effective_capabilities
496+
env, clazz, uid, gid, gids, runtime_flags, _20, _21, rlimits, permitted_capabilities, effective_capabilities
497497
);
498498
rz_nativeForkSystemServer_post(&ctx);
499499
rz_cleanup(&ctx);

0 commit comments

Comments
 (0)