안드로이드 개발 질문/답변
(글 수 45,052)
이런 질문해도 될런지 모르겠네요..
문제가 된다면 삭제 하겠습니다.
다른게 아니라 어떤 한 앱을 디컴파일 해서 루팅관련줄을 수정을 좀 하였는데요.
제가 궁금한건 명령줄 밑에 어떠한 분기문도 없는데 어떻게 밑에 명령들이 실행이 안되는지 궁금하네요.
우선 소스코드가 디컴파일 한거라 조잡해서 보기 좀 불편하실텐데 궁금한 부분만 복사해서 올려봅니다.
-----생략------
try
{
Process localProcess = Runtime.getRuntime().exec("su"); // 문자열"su" 부분을 smali 파일에서 수정
Intent localIntent1 = new android/content/Intent;
Context localContext1 = Resource.globalContext;
Intent localIntent2 = localIntent1;
Context localContext2 = localContext1;
NotifyDlg localNotifyDlg1 = NotifyDlg.class;
localIntent2.<init>(localContext2, localNotifyDlg1);
Intent localIntent3 = localIntent1;
int i = 268435456;
Intent localIntent4 = localIntent3.addFlags(i);
Intent localIntent5 = localIntent1;
String str1 = "strTitle";
String str2 = "로그인 실패";
Intent localIntent6 = localIntent5.putExtra(str1, str2);
Intent localIntent7 = localIntent1;
String str3 = "strNotify";
String str4 = "루팅된 폰은 사용할 수 없습니다. ";
Intent localIntent8 = localIntent7.putExtra(str3, str4);
Context localContext3 = Resource.globalContext;
Intent localIntent9 = localIntent1;
localContext3.startActivity(localIntent9);
PHONE_INFO localPHONE_INFO1 = Resource.phoneInfo;
boolean bool1 = true;
localPHONE_INFO1.bRootingPhone = bool1;
------생략-------
코드에도 적어놨지만 try 바로밑에 "su"부분을 다른 문자열로 바꿔놓으면 루팅관련 메세지가 뜨지않습니다.
그 밑에 어디에도 localProcess 를 if 같은걸로 검사한다거나 해서 명령들을 분기하는것이 안보입니다.
문자열을 좀 바꿨다고 어떻게 밑에 명령들이 실행안되는지 정말 이해가 안가는군요...
고민끝에 혼자 생각한게 저 명령이 혹시 에러가 나서 try 문 자체가 바로 catch문으로 보내는거라고 밖에는 생각이 되지 않는데
이 추론이 맞는지 모르겠네요...
프로그램이라곤 아주짤막한 지식밖에 없는 저로서는 참 이해하기 힘드네요....ㅡㅡ;
고수님의 가르침 기다리겠습니다.




su 는 그냥 문자열이 아니라 명령어입니다. 명령어를 실행(execute) 하는것으로 보이네요.