Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

11206
629
98793


[안드로이드] 시스템 데몬 부분 빌드 dev utility

안드로이드에서 리눅스 시스템 프로그래밍을 실습하고 싶을 때가 있습니다.

android\system\core 폴더에서 simple_proc 폴더 하나를 생성합시다. 
android\system\core\simple_proc

다음과 같이 메이크 파일을 하나 작성한 후 android\system\core\simple_proc 폴더에서 Android.mk 이름으로 저장합시다.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := test

LOCAL_SRC_FILES := \
  test.cpp \


LOCAL_MODULE_TAGS := optional

LOCAL_FORCE_STATIC_EXECUTABLE := true

LOCAL_STATIC_LIBRARIES := \
    libadbd \
    libbase \
    libfs_mgr \
    liblog \
    libcutils \
    libc

include $(BUILD_EXECUTABLE)

컴파일하려는 소스 코드이름은 test.cpp 이고 생성하려는 프로그램 이름도 test입니다.
test.cpp 소스 코드 구현부는 다음과 같습니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(void)
{
        int i = 0;

        for( i = 0; i < 100; i++) {
                printf("Tracing Log \n");
                sleep(5);
        }

        return 0;
}

위와 같이 코드 작성 후 test.cpp로 코드를 저장합시다.
다음 명령어를 입력해서 안드로이드 빌드 설정을 합니다.
source build/envsetup.sh
lunch

아래 폴더로 이동합시다.
android/system/core/simple_proc

mm . -B 명령어로 모듈을 빌드합시다.
android/system/core/simple_proc$ mm 

test 프로그램이 생성되면 다음 명령어로 디바이스에 프로그램을 복사합니다.
adb push test /data/

adb shell 명령어 입력 후 다음과 같이 test 프로그램 권한을 부여합니다.
chmod 0777 /data/test

이번에는 test 프로그램을 실행합시다. 다음 명령어를 눈여겨봅시다.
adb shell /data/test 
while true; do ps | grep logd ;sleep 1;done

1초 간격으로 프로세스 리스트를 출력하는 스크립트입니다.


덧글

댓글 입력 영역