APP Repacking

Android 2013. 7. 8. 15:17


필요 Tool : APKTool, APK Sign tool, JDK, 



APP Repackgin


1.

APK Tool 을 이용해 디코딩

$ apktool d <package> <directory>


2.

입맛에 맞게 수정


3. 

재패키징

$ apktool b <Target_directory>


4. APK Sing Tool을 이용해 Sign 추가


$ java -jar signapk.jar testkey.x509.pem testkey.pk8 [Target_FileName].apk [Add_FileName].apk




기타

1.

디버깅 모드로 디코딩, 재패키징을 원하면

apktool 사용시 "-d" 옵션을 사용


ex)

$ apktool d -d <package> <directory>

$ apktool b -d <Target_directory>



2.

3번 과정에서 아래와 같은 에러 발생시..





%APKTool_Path%framework\1.apk을 삭제한 후 실기기에 존재하는 framework-res.apk 를 해당 위치에 복사한 후 1.apk로 이름변경



Posted by ph4nt0m
,

1. Eclipse 설치


Repository에서 설치 가능,

http://www.eclipse.org/downloads/ 에서 직접 다운받을 수 있음



2. ADT Plugin, Android SDK 설치


메뉴 -- help-> install New Software..

우상단 Add 버튼 클릭 후 "https://dl-ssl.google.com/android/eclipse/" 추가

/*
Name : ADT Plugin
Location : https://dl-ssl.google.com/android/eclipse/
*/

활성화된 항목중 Developer Tools 선택하고 Next -> I Agress -> Finish
이클립스 재시작
재시작 후 Android SDK 설치 화면 자동 팝업됨
Next -> Accept All 체크 후 Install 
설치가 완료되면 파일메뉴 -> Window -> Android SDK Manager 선택
/* 
Android SDK Manager"가 보이지 않는다면 "파일 메뉴 -> Window -> Open Perspective -> JAVA" 선택 후 다시 확인 
*/
필요한 항목들 체크 -> Install N package -> Accept All -> Install 


3. AVD Manager

파일 메뉴 -> Window -> AVD Manager


'Android' 카테고리의 다른 글

APP Repacking  (1) 2013.07.08
AOSP(Android Open Source Project) 설치, USB Access 설정  (0) 2013.07.01
Posted by ph4nt0m
,

JDK 설치


기본으로 제공되는 sun-java5-jdk는 에러 발생 가능성 있음

최신 패키지인 oracle 패키지 설치 권장


$ sudo apt-get purge openjdk*

$ sudo apt-get install ppa-purge

$ sudo add-apt-repository ppa:upubuntu-com/java

$ sudo apt-get update

$ sudo apt-get install oracle-java7-installer




AOSP 설치 


1. 저장소 추가 및 관련 파일 설치


$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"


$ sudo apt-get install git gnupg flex bison gperf build-essential \

  zip curl libc6-dev libncurses5-dev x11proto-core-dev \

  libx11-dev libreadline6-dev lib32ncurses5-dev \

  libgl1-mesa-dev g++-multilib mingw32 tofrodos \

  python-markdown libxml2-utils xsltproc zlib1g-dev

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so


2. Repo Client 초기화 및 소스 다운로드


$ mkdir ~/bin

$ PATH=~/bin:$PATH


$ curl https://dl-ssl.google.com/d/googlesource/git-repo/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY


$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

$ repo sync


3. 사용자 식별


안드로이드 소스는 기본적으로 익명 접근이 가능하나, 서버에 대한 과도한 사용의 보호를 위해 사용자를 식별함

자동 패스워드 생성 페이지를 방문하여 ID/PW를 할당 받자

https://android.googlesource.com/new-password


할당된 정보를 ~/.netrc 파일에 패스워드 저장


강제 인증 실시

$ repo init -u https://android.googlesource.com/a/platform/manifest





 USB Access 설정

루트가 아니더라도 USB 장치에 접근하는 것이 필요

/etc/udev/rules.d/51-android.rules 파일을 생성하고 아래 내용을 입력

<username> 은 자신의 사용자 이름으로 치환


# adb protocol on passion (Nexus One)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"

# fastboot protocol on passion (Nexus One)

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"

# adb protocol on crespo/crespo4g (Nexus S)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"

# fastboot protocol on crespo/crespo4g (Nexus S)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"

# adb protocol on stingray/wingray (Xoom)

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"

# fastboot protocol on stingray/wingray (Xoom)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"

# adb protocol on maguro/toro (Galaxy Nexus)

SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"

# fastboot protocol on maguro/toro (Galaxy Nexus)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"

# adb protocol on panda (PandaBoard)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"

# fastboot protocol on panda (PandaBoard)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"

# usbboot protocol on panda (PandaBoard)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"

# usbboot protocol on panda (PandaBoard ES)

SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"

# adb protocol on grouper/tilapia (Nexus 7)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"

# fastboot protocol on grouper/tilapia (Nexus 7)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"

# adb protocol on manta (Nexus 10)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"

# fastboot protocol on manta (Nexus 10)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"





참조 : http://source.android.com/source/building.html


'Android' 카테고리의 다른 글

APP Repacking  (1) 2013.07.08
개발환경 설정, Eclipse, ADT Plugin, Android SDK 설치  (0) 2013.07.01
Posted by ph4nt0m
,