[skip ci]:kernel: kpm: add compatibility for kernel 4.14 and lower (#76)

manger: Fix and simplify back gesture

`thread_pid` is not defined in kernel 4.14 and lower, leading to compilation issue.
To fix this, use `pids[PIDTYPE_PID].pid` for kernel versions 4.14 and lower.
Else use `thread_pid` for kernel versions 4.19 and higher.

Reference: 107717913b/tracee/tracee.bpf.c (L354)

Co-authored-by: sidex15 <24408329+sidex15@users.noreply.github.com>
Co-authored-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com>
Signed-off-by: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com>
This commit is contained in:
ShirkNeko
2025-05-19 21:30:13 +08:00
parent 2a10b41781
commit ebc16583fb
3 changed files with 55 additions and 15 deletions

36
.github/workflows/crowdin.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: Crowdin Action
on:
push:
branches: [ main ]
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: crowdin action
uses: crowdin/github-action@master
with:
upload_sources: true
upload_translations: true
download_translations: true
localization_branch_name: "Crowdin"
crowdin_branch_name: "main"
create_pull_request: true
pull_request_title: 'New Crowdin Translations'
pull_request_body: 'New Crowdin translations by [Crowdin GH Action](https://github.com/crowdin/github-action)'
pull_request_base_branch_name: 'main'
skip_untranslated_files: true
env:
# A classic GitHub Personal Access Token with the 'repo' scope selected (the user should have write access to the repository).
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
# A numeric ID, found at https://crowdin.com/project/<projectName>/tools/api
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
# Visit https://crowdin.com/settings#api-key to create this token
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -167,7 +167,11 @@ DYNAMIC_STRUCT_BEGIN(task_struct)
DEFINE_MEMBER(task_struct, group_leader)
DEFINE_MEMBER(task_struct, mm)
DEFINE_MEMBER(task_struct, active_mm)
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
DEFINE_MEMBER(task_struct, pids[PIDTYPE_PID].pid)
#else
DEFINE_MEMBER(task_struct, thread_pid)
#endif
DEFINE_MEMBER(task_struct, files)
DEFINE_MEMBER(task_struct, seccomp)
#ifdef CONFIG_THREAD_INFO_IN_TASK

View File

@@ -192,12 +192,20 @@ fun FlashScreen(navigator: DestinationsNavigator, flashIt: FlashIt) {
}
}
BackHandler(enabled = true) {
val onBack: () -> Unit = {
if (currentFlashingStatus.value != FlashingStatus.FLASHING) {
if (flashIt is FlashIt.FlashBoot) {
navigator.popBackStack()
} else {
navigator.navigate(ModuleScreenDestination) {
}
}
}
}
BackHandler(enabled = true) {
onBack()
}
Scaffold(
topBar = {
@@ -205,12 +213,8 @@ fun FlashScreen(navigator: DestinationsNavigator, flashIt: FlashIt) {
currentFlashingStatus.value,
currentStatus,
navigator = navigator,
onBack = {
if (currentFlashingStatus.value != FlashingStatus.FLASHING) {
navigator.navigate(ModuleScreenDestination) {
}
}
},
flashIt = flashIt,
onBack = onBack,
onSave = {
scope.launch {
val format = SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault())
@@ -421,7 +425,8 @@ private fun TopBar(
status: FlashingStatus,
moduleStatus: ModuleInstallStatus = ModuleInstallStatus(),
navigator: DestinationsNavigator,
onBack: () -> Unit = {},
flashIt: FlashIt,
onBack: () -> Unit,
onSave: () -> Unit = {},
scrollBehavior: TopAppBarScrollBehavior? = null
) {
@@ -459,12 +464,7 @@ private fun TopBar(
}
},
navigationIcon = {
IconButton(onClick = {
if (status != FlashingStatus.FLASHING) {
navigator.navigate(ModuleScreenDestination) {
}
}
}) {
IconButton(onClick = onBack) {
Icon(
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = null,