이런 질문해도 될런지 모르겠네요..

문제가 된다면 삭제 하겠습니다.

 

다른게 아니라 어떤 한 앱을 디컴파일 해서 루팅관련줄을 수정을 좀 하였는데요.

제가 궁금한건 명령줄 밑에 어떠한 분기문도 없는데 어떻게 밑에 명령들이 실행이 안되는지 궁금하네요.

 

우선 소스코드가 디컴파일 한거라 조잡해서 보기 좀 불편하실텐데 궁금한 부분만 복사해서 올려봅니다.

 

-----생략------
 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문으로 보내는거라고 밖에는 생각이 되지 않는데

이 추론이 맞는지 모르겠네요...

 

프로그램이라곤 아주짤막한 지식밖에 없는 저로서는 참 이해하기 힘드네요....ㅡㅡ;

 

고수님의 가르침 기다리겠습니다.