xref: /aosp_15_r20/build/soong/bin/coredump_setup (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1#!/bin/bash
2
3# Copyright (C) 2024 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#      http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# coredump_setup - enable core dumps globally for any process
18#                  that has the core-file-size limit set correctly
19#
20# NOTE: You must call also coredump_enable for a specific process
21#       if its core-file-size limit is not set already.
22# NOTE: Core dumps are written to ramdisk; they will not survive a reboot!
23
24set -e
25
26echo "Getting root...";
27adb root;
28adb wait-for-device;
29
30echo "Remounting root partition read-write...";
31adb shell mount -w -o remount -t rootfs rootfs;
32sleep 1;
33adb wait-for-device;
34adb shell mkdir -p /cores;
35adb shell mount -t tmpfs tmpfs /cores;
36adb shell chmod 0777 /cores;
37
38echo "Granting SELinux permission to dump in /cores...";
39adb shell restorecon -R /cores;
40
41echo "Set core pattern.";
42adb shell 'echo /cores/core.%p > /proc/sys/kernel/core_pattern';
43
44echo "Done."
45
46