*** Android Debug ***

* Kernel Debug
=====================================================
* adb shell
- cat proc/kmsg : kernel 로그 메세지를 볼 수 있음.

   adb devices 로 폰 연결확인
   adb shell
   > cat /proc/kmsg&  커널메시지 나옴 ex: <number>형식
   > logcat&          플랫폼메시지 나옴 
   adb logcat -b radio > xxx.txt 릴 로그

dmesg : 가장 최근 메세지 출력
===================================================

* kernel message 찍기 (파일이름, 함수이름, 라인넘버)
===================================================
printk(KERN_ERR "%s : %s : %d \n, __FILE__, __func__, __LINE__)
===================================================

* 부팅시 Serial 로 메세지 찍는 방법
===================================================
setenv SWITCH_SEL 3
saveenv

로그 레벨 변경하는 방법
----
setenv CMDLINE console=ttySAC2,115200 loglevel=7
saveenv

현재 상태 보는 방법
----
printenv


===================================================

* emergency mode 들어가는 법: anyway function 부분 2,6번 내리고 폰연결하면 들어간다.



- wake lock 보는 방법
---------
#cat /sys/power/wake_lock


- wake unlock 보는 방법
---------
#cat /sys/power/wake_unlock


- wake lock setting 방법
---------
#echo test > /sys/power/wake_lock


- wake unlock setting 방법
---------
#echo test > /sys/power/wake_unlock


- 현재 wake lock 보는 방법
---------
#cat /proc/wakelocks

- Threads 보는 방법
---------
#ps
#ps -t

- Thread 죽이는 방법
---------
#kill "PID"
#kill -9 "PID"

- dumpsys 보는 방법
---------
#dumpsys power
#dumpsys alarm


- 의심되는 Thread 가 있을 경우에 확인 방법
의심되는 Thread의 PID를 확인후에
#cd proc
#cd "PID"
#cat wchan (현재 상태 확인)

#cat cmdline (매개변수 확인)

-속성 변경하는 방법 (read, write)
-----------------------------
    chown system system /data
    chmod 0771 /data
-----------
위 부분의 속성을 system으로 바꿔서 read write 가능하게 하려면~
-----------------------------
    chown system system /system
    chmod 0771 /system
-----------
이렇게 하면 apk 파일을 지울수 있다.


adb logcat  -v time -b main -b radio -b events -b system 2>&1|tee 00_logcat.log


출처 http://mungi.kr/172

'Japan > Work As Tester' 카테고리의 다른 글

ims-volte-sip  (0) 2016.03.19
로그 보면서 파일로 저장하기  (0) 2016.03.18
로그, 속성 관련  (0) 2016.03.18
adb shell 명령어  (0) 2016.03.18
VoLTE관련  (0) 2016.03.18
디바이스와 adb 무선으로 사용하도록 세팅  (0) 2016.03.18

안드로이드 시스템 분석에 사용할만한 shell 명령을 알아보자.

시스템 기본 정보: 하드웨어, 커널 등

cat /proc/version : 커널 버전
cat /proc/cpuinfo : 프로세서 정보. CPU 타입, 모델, 제조사 등
cat /proc/meminfo : 메모리 정보. 실제 메모리 및 가상 메모리
cat /proc/devices : 현재 커널에 설정되어 있는 장치 목록
mount : 마운트된 모든 장치 정보
df : 하드디스크 사용량
cat /proc/filesystems : 커널에 설정되어 있는 파일시스템 목록
cat /proc/swaps : 스왑 파티션의 크기와 사용량
cat /proc/interrupts : 장치가 사용중인 인터럽트(IRQ) 목록 표시
cat /proc/ioports : 현재 사용중인 Input/Output 포트
cat /proc/loadavg : 시스템의 평균부하량
cat /proc/partitions : 파티션 정보
cat /proc/uptime : 시스템이 얼마나 살아있었는지.
cat /proc/stat : 시스템 상태에 관한 다양한 정보. CPU 사용통계, 부팅이후 page fault 발생횟수 등
cat /proc/zoneinfo : ZONEINFO ?
dmesg : 시스템 부팅시 나왔던 메시지
ps : 실행중인 프로세스 정보
ps -p -t : 프로세스와 쓰레드 목록
set 또는 printenv : 환경설정값 출력

시스템 리소스 사용 현황

vmstat : 시스템의 리소스 상황 모니터링. CPU, I/O, 메모리 등
cat /proc/diskstats : 디스크 utilization과 throuthput. 즉 디스크 IO 현황
top : 시스템의 프로세스 상황 모니터링. 프로세스별 CPU 사용량, 메모리와 스왑 사용량 등
procrank : 프로세스별 메모리(VSS,RSS,USS, PSS)
dumpsys meminfo [PID] : 해당 프로세스의 메모리 상세 정보
cat /proc/[PID]/stat : 해당 프로세스에 대한 정보. 시작시간, 상태, CPU 사용량 등
cat /proc/[PID]/maps : 해당 프로세스의 메모리 맵 정보
cat /proc/vmstat : 버추얼 메모리 통계?
librank : 라이브러리별 메모리 사용량?

네트워크 관련

cat /proc/net/netlink : 네트워크 정보
netcfg : 네트워크 인터페이스와 IP주소 목록
netstat : 네트워크 연결상태 확인
nc : 네트워크용 cat 명령어(netcat)
ifconfig : 네트워크 인터페이스 설정 정보. 장치명을 파라미터로 받음. IP 주소, 서브넷마스크 등
tcpdump : 실시간 패킷 모니터링
iftop : 네트워크를 위한 top
route : 해당 호스트까지 연결하는 중간 경로 정보인 라우팅 테이블 표시
ping : 원격 호스트와의 연결 테스트
cat /proc/net/route : Routes

안드로이드 제공

logcat : 로그캣 보기
pm : package manager의 약자. 패키지/permission/instrumentation/feature 목록, 패키지 설치/제거 등
am : activity manager의 약자. 액티비티 시작, Intent 브로드캐스팅, Instrumentation 시작, profiling 시작/중지 등
service : 안드로이드 서비스 목록 표시, 서비스에 명령 전달
monkey : 애플리케이션에 랜덤 이벤트 발생시킴. 사용자 이벤트, 시스템 이벤트의 무작위 발행
cat /data/anr/traces.txt : VM TRACES (쓰레드 덤프)
cat /proc/binder/proc/[PID] : 바인더 프로세스 상태
cat /proc/binder/xxx : 바인더 관련 정보(xxx는 transactions, transaction_log, failed_transaction_log, stats 등)
cat /data/system/packages.xml : 설치된 패키지 세팅 정보
setprop : system property 세팅
getprop : 세팅된 system property 목록 출력


종합 리포트
dumpsys [service]: app/service 상태정보 덤프. 서비스별로 추가 파라미터 받을 수 있음
dumpstate : device 상태정보 덤프(cpu,mem,ps 등). 상태정보를 추출하는 여러 명령어들의 조합으로 구성
dumpcrash : 애플리케이션이 crash될 때의 상태정보 덤프?
bugreport : logcat+dumpsys+dumpstate

그밖에...
그밖의 안드로이드 shell 명령어는 /system/bin 및 /system/xbin을 뒤져보면 많이 나온다. 이제 남은 일은 찾아낸 명령어의 사용법, 출력결과를 

어떻게 해석할지, 어떤 상황에서 이들을 활용할지 사례조사, 그리고 직접 활용해보는 것일게다.

출처 http://ecogeo.tistory.com/256

* 참조

http://www.cyworld.com/polox94ii/312644

http://tkhwang.pe.kr/archives/65

http://en.androidwiki.com/wiki/ADB_Shell_Command_Reference

http://elinux.org/Using_Bootchart_on_Android

http://elenoa.tistory.com/52

'Japan > Work As Tester' 카테고리의 다른 글

로그 보면서 파일로 저장하기  (0) 2016.03.18
로그, 속성 관련  (0) 2016.03.18
adb shell 명령어  (0) 2016.03.18
VoLTE관련  (0) 2016.03.18
디바이스와 adb 무선으로 사용하도록 세팅  (0) 2016.03.18
ADB 명령어(1)  (0) 2016.03.18

http://chocoberry.pe.kr/142947264

http://heejong0217.tistory.com/entry/VoLTE


IMS(IP Multimedia SubSystem)

 UICC(Universial Integrated Circuit Card)

 ISIM(IP Multimedia Services Identity Module)


 CSCF(Call Session Control Fuction)

  1) P-CSCF(Proxy-CSCF)

    유저가 IMS 망에 액세스 하기 위해 최초 접속하는 지점.

    1) UE로부터 SIP 메시지를 체크하여 정의되지 않는 메시지의 경우 IMS망에 유입되지 않게 차단.

    2) UE로부터의 요청 메시지를 다른 CSCF로 전송

    3) UE로부터 액세스가 없는 경우, 세션 종료 처리를 한다. 

  2) S-CSCF(Serving-CSCF)

    세션 제어의 중심적인 SIP 서버

    1) User 단말 정보를 HSS에 전송

    2) HSS로부터 다운받은 가입자 정보를 보관/유지

    3) B2BUA(Baek-to-baek user agent) 기능을 통해 세선의 시작과 종료

    4) SIP 메시지 경로를 찾음.

    5) 필요에 따라 AS의 서비스 처리를 기동

  3) I-CSCF(Interroagation-CSCF)

    다른망으로 부터의 SIP 메시지를 수신하는 게이트웨이 성격의 SIP 서버

    1) 유저가 위치등록 할 때 해당하는 HSS를 선택

    2) 자신이 망 내의 적절한 S-CSCF에게 UE로 부터의 받은 메시지를 전송한다.


 SIP(Sesstion Initation Protocol) - 접속 설정 프로토콜

  -> 매우 간단한 텍스트 기반의 응용계층 제어 프로토콜로서, 하나 이상의 참가자들이 함께 세션을

     만들고, 수정하고 종료할 수 있게 한다. 이러한 세션들에는 인터넷을 이용한 원격회의, 전화, 면회, 이벤트 통지,

     인스턴트 메시징 등이 포함됨.


 HSS(Home Subscriber Server, IMS 네트워크 상에서 가입자 정보(위치정보, 인증정보, 서비스정보 등)을 관린하는 시스템


 IP-SM-GW(인터넷 프로토콜 - 단문 메시지 - 게이트 웨이)


 MMTel(Multimedia Telephony) 

  LTE 네트워크 구축의 초기 단계를 지나 커버리지가 어느 정도 갖추게 되면 3GPP MMTel과

  같은 적절한 솔루션을 통해서 멀티미디어 커뮤니케이션 서비스를 구현하는 단계로 진화.

 

 

CSFB(Circuit Switched Fallback) - SKT - voLTE 시대 이전의 중간 단계로 3GPP에서 정의

 - 음성통화와 4G LTE 데이터를 동시에 사용할 수  없음. 그렇기 때문에 모뎀이 없는 APQ8060과 MDM 9200을 사용하여

   원래는 사용 불가능한 MDM9200의 보이스 기능을 스냅드래곤 AP와의 조합으로 활성화시키고 모뎀의 중복을 피함.

   여전히 3G에서의 음성, 데이터 동시 사용은 가능.(음성 통화 시에는 3G 연결.)


SMS Over SGs

LTE 네트워크에서 IMS 솔루션 없이 SMS 지원하는 기술.

(SGs는 MME와 MSC 서버간 인터페이스를 말함)

즉, SMS는 UMTS air가 아닌 MSC 서버와 MME 그리고, LTE Air 인터페이스를 통해 전달되는 것을 의미함).


SVLTE(Simultaneous Voice and LTE) - LGU - voLTE 시대 이전의 중간 단계로 3GPP2(CDMA2000진영)에서 정의

 - 음성통화와 4G LTE 데이터가 동시에 사용 가능한 방식. 모뎀침(MSM8660 + MDM9600) 및 RF Transceiver, 안테나 등

   라디오를 듀얼로 사용해서 CDMA 음성과 LTE 데이터의 동시 전송이 가능을 가능케 함.

voLTE(voice over LTE) - 070전화처럼 모든 전화기가 LTE 네트워크 상에서 서로 IP를 이용해 통화


OTT(Over-the-Top) - LTE 네트워크 상에서 스카이프나 구글톡 등의 서비스를 이용해 통화

가입자가 늘어나고 특정 지역에 몰렸을 때 단말기가 기지국과 통신하는 호(call)의 정체 현상 해결 방법

SKT - 팸토셀 / KT - LTE워프


LTE - MIMO(Multiple Input and Multiput Output)안테나 기본(기지국과 단말기가 여러개의 안테나를 이용해 속도를 끌어올리는

기술로 안테나 당 처리할 수 있는 데이터 트래픽을 늘릴 수 있기 때문에 LTE에서 가장 중요한 부분 중 하나)


TD-LTE(Time Division LTE) - 시분할 처리 기술 도입


RRC(Radio Resource Control)

a concept and a protocol name for a set of control messages exchanged between user equipment (UE) and the Radio Network Controller (RNC) in the UMTS standard


XCAP(XML Configuration Access Protocol)


MSG-AS 

IMS 망에서의 Short Messgae Service를 처리하는 시스템으로 CSCF 및 HSS 연동, 기타 Legacy 시스템과 연동하여 SMS의 저장 및 전송을 처리하는 시스템


RTP(Real_time Transfer Protocol)

- RTP는 인터넷 상에서 다수가(영상회의 등) 종단 간에 실시간으로 비디오나 오디오 패킷을 전송하기 위해 표준화 된 프로토콜(실시간 전송 프로토콜)

- RTP는 신뢰성은 없으나 빠르게 데이터를 전달할 수 있는 UDP라는 수송 프로토콜 위에서 실행(즉, UDP와 함께 사용되어짐)되며 주로 실시간 서비스를 제공한다.


Java APIs for Integrated Networks (JAIN) (javax.sip.*) - 안드로이드에서 사용


펨토셀 

- 펨토셀은 1000조 분의 1을 의미하는 펨토(femto)와 이동전화 커버리지 단위인 셀(cell)의 합성어로 가정, 사무실 등 옥내 지상, 지하의 작은 지역(30~50m)을

  서비스하기 위하여 설치되는 초소형 이동통신기지국



클라우드


SaaS(Software as a Service) - 클라우드로 소프트웨어 제공(Web 2.0)

IaaS(Infra as a Service) - 서버와 스토리지를 클라우드로 제공

PaaS(Platform as s Service) - 플랫폼을 클라우드로 제공(개발자들이 별도의 플랫폼 구축없이 애플리케이션을 웹에서 쉽개 개발하고 서비스할 수 있게 도와줌)

--> 개발자가 애플리케이션을 개발해 서비스에 올릴려면 웹 애플리케이션 서버(WAS)와 DB가 필요하며, 여기애 개발할 수 있는 소프트웨어를 설치해야함.

(Ex) Apache + PHP + Sqlite)

PaaS가 등장하기 전(IaaS)에는 개발자들이 일일이 CD를 넣고 설치한 다음 본격적으로 애플리케이션 개발에 들아가는 식으로 구현 했지만, PaaS 이미 환경구축이

되어 있기 때문에 개발만 하면 됨.



voLTE


http://elec4.co.kr/article/articleView.asp?idx=2659


Milti PDN(Public Data Network, 공중 데이터 망)

여러 개의 PDN으로 연결해 다수의 IP를 받고, 각각의 IP마다 서로 다른 서비스를 받는다.

현재 버라이즌은 두개의 PDN을 받고 있다 하나의 PDN은 IMS에 등록해 SMS나 향후 voLTE 서비스를 받는 IP로 이용하고,

다른 PDN IP는 우리가 흔희 사용하는 인터넷 망을 통해 접속할 수 있도록 규정하고 있다.


UTRAN(UMTS Terrestrail Radio Access Network)

 CN과 UE를 연결해 주는 다리 역할. 주로 전파 자원을 제어하고 할당하거나 사용자의 이동성을 보장하는 기능 담당.

 내부적으로 Node B, RNC(Radio Network Control), RNS(Radio Network System - Node B + RNC)

 UTRAN 망은 이러한 RNS들의 집합.


기본적으로 WCDMA의 protocol 구조는 크게 AS와 NAS로 나누어 질 수 있음.


AS(Accres Stratum)

 AS는 하드웨어에 가까운 저 레벨(Lower Level Layer) Protocol을 의미하며 CN와 UE간에 데이터를 어떻게 안정적으로

 넘겨주는 역할을 수행(Power Control, Handover 수행)


NAS(Non-Access Stratum)

 NAS는 상대적으로 고레벨(하드웨어적이기보단 소프트웨어적인 레벨) 단의 Protocol을 가리키는 개념.

 결국 망 통신은 CN(Core Network)와 UE(User Equipment)간 데이터를 주고 받는 행위임. 따라서 UE가 UTRAN과 

 어떻게 데이터를 주고 받는가, UTRAN과 CN 사이에 데이터 송수신은 어떻게 되는가와 같은 문제들은 하부 물리 layer 쪽에

맡기고 NAS에서는 실제로 송수신되는 데이터를 활용해서 어떻게 전화나 문자를 사용자들이 사용하게 할 것이가가 관심사가 됨.

다시 이 NAS는 User Plane과 Control Plane 두 가지로 구분. User Plane은 사용자가 주고 받기 원하는 음성, 문자 등의

데이터들을 가리킴. Control Plane은 그런 사용자 데이터를 주고 받는 것을 돕기 위해 CN과 UE간 주고 받는 기타 신호 정보들을

의미.

 대표적으로 사용되는 프로토콜은 MM,CC,SS(Supplementaty Service), SMS, GMM, SMS protocol등이 있으며

실질적으로 user service control, registration, indentification, authentication, MM function등의 기능을 담당.

NAS 프로토콜

 단말기가 무선망에 접속하기 위해서는 eNodeB 뿐만 아니라 MME의 인증도 거쳐야 함. 이후 무선망 연결이 지속되기 위해서는 단말과 MME

가 지속적으로 데이터들을 주고 받을 수 있어야 함. 이 프로토콜은 핸드오버에도 관여하지만, 그것은 단말기가 idle mode일 때에 한함.

 요컨대, NAS는 무선망 연결과 유지를 위한 단말과 MME의 프로토콜

 단말기의 최상단 프로토콜인 NAS가 MME의 NAS와 직접 연결됨.


EMM(evolved Mobility Management), ESM(evolved Session Management)


RRC(Radio Resource Control) 프로토콜

 RRC는 LTE 단말기가 eNodeB에 접속하고 이를 유지하기 위해 사용되는 프로토콜. 단말이 이동할 때 처리되어야 하는 핸드오버 역시 이 프로토콜

에서 이루어짐. 단, 단말기가 idle mode인 경우에는 RRC 대신에 NAS 프로토콜에서 핸드오버 처리됨.

 LTE 단말기를 개발하는 업체에서는 단말기가 무선망에 정상적으로 연결 및 유지되는지를 검증해야함. 이 때 가낭 중요한 포로토콜이 바로 RRC임.

 단말 개발자들은 이것이 장비들과 주고 받는 메시지나 로그들의 내용이 정상인지를 분석하고 문제점 진단할 수 있음.

'Japan > Work As Tester' 카테고리의 다른 글

로그, 속성 관련  (0) 2016.03.18
adb shell 명령어  (0) 2016.03.18
VoLTE관련  (0) 2016.03.18
디바이스와 adb 무선으로 사용하도록 세팅  (0) 2016.03.18
ADB 명령어(1)  (0) 2016.03.18
DDMS(Dalvik Debug Monitoring Service)  (0) 2016.03.18

+ Recent posts