본문 바로가기

Kernel

Socket Interface Name으로 IP 주소 가져오기. 3g,wifi등 인터넷에 interface Name이 있습니다.이 name을 이용하여 IP를 가져오는 방법이 있네요.system 입출력 함수인 ioctl을 이용하여 가져오는 방법입니다. ...#include #include #include #include ...char *getIfToIP(char *ifName){ int fd; struct ifreq ifr; fd = socket(AF_INET, SOCK_DGRAM, 0); /* I want to get an IPv4 IP address */ ifr.ifr_addr.sa_family = AF_INET; /* I want IP address attached to interfaceName */ strncpy(ifr.ifr_name, ifName, IFNAM.. 더보기
[ Kernel ] system 디버깅 printk라는 함수를 사용하여 kernel단에 디버깅을 한다. 이 로그를 보기 위해서는 다음과 같이 하면 된다. 1)prompt창 띄운 후 adb shell -> dmesg 를 하면 부팅 후 현재까지의 로그를 전부 보여줌2)adb shell -> dmesg -c 를 하면 현재까지 다 보여주고 로그 버퍼 삭제 -> dmesg3)adb shell -> cat /proc/kmsg 실시간 로그 보여줌 ( path가 안되어 있을 경우, sdk/platform-tools 에 보면 있다.) 더보기
[ Kernel ] System call 추가 방법 ( ICS ) 안드로이드에 Systemc call을 추가하여 user 단에서 사용 하는 법을 해볼까 한다.이 내용은 ICS를 기초로 하는 거다. 참고로, 대부분의 안드로이드 폰이 arm기반으로 되어있기 때문에 아래 추가내요은 x86이 아닌 arm에서의 추가방법임. 그럼 차근차근 하나씩 수정해보도록 해보겠다.1. System Call 등록 - Unistd.h에 System Call 번호 추가 위치 : android/kernel/arch/arm/include/asm/unistd.h#define __NR_sendmmsg (__NR_SYSCALL_BASE+374)#define __NR_setns(__NR_SYSCALL_BASE+375)#define __NR_set_add_function(__NR_SYSCALL_BASE+376.. 더보기