Skip to content
모두의 공간
개발자 공간
사용자 공간
최근글
로그인
접속유지
회원가입
ID/PW 찾기
모두의 공간
새로운 소식
새로운 게임/앱
개발자 공간
개발자 게시판
개발자 질문/답변
개발자 정보
구인/구직/의뢰
행사/세미나/교육
(구)질문/답변
사용자 공간
앱 정보/후기
게임 정보/후기
기기 정보/후기
잡담/유머/창작
안드로이드 개발 정보 (글 수
1,064
)
전체보기
앱개발
플랫폼
소스
강좌
외부API
호환성
기획
기타
apktool - reengineering/decompiling apks
adam22030.myid.net
https://www.androidpub.com/android_dev_info/364306
2010.05.20
00:29:41
6570
0
앱개발
여보세요
apktool can be used to decompile Android apk's. It can decode resources to nearly original form
and rebuild them
after making some modifications; it makes possible to debug smali code step by step,
smali is an assembler for the dex format used by Dalvik, Android's Java VM.
More on apktool can be found here: http://code.google.com/p/android-apktool/
More on smali can be found here: http://code.google.com/p/smali/
Also, http://www.xda-developers.com/ has many good threads on these topics; here is a main thread:
http://forum.xda-developers.com/showthread.php?t=640592
As an example, here is the AndroidManifest.xml of SKTHiddenMenu.apk obtained after using apktool on the apk:
<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="1" android:versionName="1.0.0" package="com.motorola.skthiddenmenu"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="6" android:targetSdkVersion="6" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.HARDWARE_TEST" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_OWNER_DATA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.HARDWARE_TEST" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<application android:label="@string/app_name" android:icon="@drawable/icon">
<activity android:label="@string/engineering_menu" android:name="EngineeringMenu">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/wcdma_security" android:name="WcdmaSecurity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.motorola.skthiddenmenu.WcdmaSecurity.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/version" android:name="VersionInfo">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.motorola.skthiddenmenu.VERSION_INFO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/security_number" android:name="SecurityNumber">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.motorola.skthiddenmenu.SecurityNumber.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/test_menu" android:name="TestMenu">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/test_menu2" android:name="TestMenu2">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/registration" android:name="RegistrationTime">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.motorola.skthiddenmenu.RegistrationTime" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/hw_test_menu" android:name="HWTestMenu">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/sw_engr_menu" android:name="SWEngrMenu">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/opening_ktf_mode" android:name="Opening KTF Mode">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/call_waiting_tone_test" android:name="CallWaitingToneTest">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/gcf_test_setting" android:name="GCFTestSetting">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/manual_ui_function_test" android:name="ManualUIFunctionTest">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:label="@string/phone_info" android:name="PhoneInfo">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<receiver android:name="HiddenMenuServiceReceiver">
<intent-filter>
<action android:name="com.motorola.intent.action.START_HIDDENMENU_SERVICE" />
</intent-filter>
</receiver>
<service android:name="HiddenMenuService" />
</application>
</manifest>
Have fun^^
Adam
이 게시물을
목록
Close Login Layer
XE Login
아이디
비밀번호
로그인 유지
OpenID Login
Open ID
회원가입
ID/PW 찾기
인증메일 재발송
OpenID
OpenID
Close Login Layer