SlideShare a Scribd company logo
Signing	
  and	
  Deploying	
  	
  
    Android	
  Applica1ons	
  
            Jussi	
  Pohjolainen	
  
Tampere	
  University	
  of	
  Applied	
  Sciences	
  
App	
  Signing,	
  Overview	
  
•  All	
  apps	
  must	
  be	
  digitally	
  signed	
  with	
  
   cer3ficate	
  
     –  Iden1fying	
  the	
  author	
  of	
  the	
  app	
  
•    Typically	
  self	
  signed	
  
•    Debug	
  key	
  for	
  debugging	
  
•    Suitable	
  private	
  key	
  when	
  publishing	
  
•    Crea1ng	
  keys	
  and	
  signing:	
  Keytool	
  and	
  
     Jarsigner	
  
Debug	
  Mode	
  
•  While	
  debugging	
  and	
  tes1ng,	
  you	
  can	
  compile	
  
   in	
  debug	
  mode	
  
•  Build	
  tools	
  uses	
  the	
  Keytool	
  u1lity	
  to	
  generate	
  
   a	
  key	
  with	
  known	
  alias	
  and	
  password.	
  Key	
  is	
  
   used	
  to	
  sign	
  the	
  .apk	
  file	
  
•  Developer	
  does	
  not	
  have	
  worry	
  about	
  this,	
  if	
  
   using	
  Eclipse!	
  
Release	
  Mode	
  
•  When	
  ready	
  to	
  release,	
  developer	
  must	
  sign	
  
   the	
  .apk	
  with	
  your	
  private	
  key	
  
•  How?	
  Two	
  op1ons:	
  
   –  Using	
  Keytool	
  and	
  Jarsigner	
  in	
  command-­‐line.	
  
      Keytool	
  generates	
  private	
  key	
  and	
  Jarsigner	
  signs	
  
      the	
  .apk	
  with	
  the	
  key	
  
   –  Using	
  ADT	
  Export	
  Wizard	
  with	
  Eclipse	
  (same	
  than	
  
      above	
  but	
  with	
  GUI)	
  
Signing	
  for	
  Public	
  Release	
  
1.  Obtain	
  suitable	
  private	
  key	
  
2.  Compile	
  the	
  applica1on	
  in	
  release	
  mode	
  
3.  Sign	
  your	
  applica1on	
  with	
  private	
  key	
  
4.  Align	
  the	
  final	
  APK	
  package	
  
Obtain	
  Suitable	
  Private	
  Key	
  
•  Private	
  key	
  
    –  Is	
  in	
  your	
  possession	
  and	
  represents	
  your	
  personal	
  
       or	
  corporate	
  en1ty	
  
    –  Validity	
  period	
  is	
  expected	
  lifespan	
  of	
  your	
  app	
  
         •  Recommenda1on:	
  over	
  25	
  years	
  
         •  Android	
  Market:	
  apps	
  must	
  have	
  validity	
  period	
  ending	
  
            a[er	
  22.10.2033	
  
    –  It's	
  not	
  the	
  debug	
  key	
  J	
  
Obtain	
  Suitable	
  Private	
  Key	
  
•  How	
  to	
  generate	
  private	
  key?	
  
•  Use	
  keytool	
  
    –  > keytool -genkey -v -keystore my-
       release-key.keystore -alias alias_name -
       keyalg RSA -keysize 2048 -validity 10000
TB308POHJUS-L-2:temp pohjus$ keytool -genkey -v -keystore my-release-key.keystore -alias my-alias -keyalg RSA -
keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]: Jussi Pohjolainen
What is the name of your organizational unit?
  [Unknown]: TMI Jussi Pohjolainen
What is the name of your organization?
  [Unknown]: TMI Jussi Pohjolainen
What is the name of your City or Locality?
  [Unknown]: Tampere
What is the name of your State or Province?
  [Unknown]: Finland
What is the two-letter country code for this unit?
  [Unknown]: FI
Is CN=Jussi Pohjolainen, OU=TMI Jussi Pohjolainen, O=TMI Jussi Pohjolainen, L=Tampere, ST=Finland, C=FI correct?
  [no]: yes

Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days
         for: CN=Jussi Pohjolainen, OU=TMI Jussi Pohjolainen, O=TMI Jussi Pohjolainen, L=Tampere, ST=Finland, C=FI
Enter key password for <my-alias>
         (RETURN if same as keystore password):
[Storing my-release-key.keystore]
TB308POHJUS-L-2:temp pohjus$ ls -al
total 88
drwxr-xr-x    5 pohjus staff     170 9 Tam 18:30 .
drwx------+ 46 pohjus staff     1564 9 Tam 16:43 ..
-rw-r--r-- 1 pohjus staff 2281 9 Tam 18:28 my-release-key.keystore
TB308POHJUS-L-2:temp pohjus$
Signing	
  for	
  Public	
  Release	
  
1.  Obtain	
  suitable	
  private	
  key	
  
2.  Compile	
  the	
  applica3on	
  in	
  release	
  mode	
  
3.  Sign	
  your	
  applica1on	
  with	
  private	
  key	
  
4.  Align	
  the	
  final	
  APK	
  packate	
  
Compiling	
  using	
  Release	
  Mode	
  
TB308POHJUS-L-2:temp pohjus$ ls -al
total 88
drwxr-xr-x   5 pohjus staff     170   9   Tam   18:30   .
drwx------+ 46 pohjus staff    1564   9   Tam   16:43   ..
-rw-r--r-- 1 pohjus staff 16435       9   Tam   18:28   BMI.apk
-rw-r--r--   1 pohjus staff    2281   9   Tam   18:28   my-release-key.keystore
TB308POHJUS-L-2:temp pohjus$
Signing	
  for	
  Public	
  Release	
  
1.  Obtain	
  suitable	
  private	
  key	
  
2.  Compile	
  the	
  applica1on	
  in	
  release	
  mode	
  
3.  Sign	
  your	
  applica3on	
  with	
  private	
  key	
  
4.  Align	
  the	
  final	
  APK	
  packate	
  
Sign	
  your	
  applica1on	
  with	
  private	
  key	
  
•  You	
  now	
  have	
  the	
  private	
  key	
  and	
  the	
  .apk	
  
   file.	
  
•  Sign	
  the	
  .apk	
  with	
  the	
  private	
  key	
  using	
  
   jarsigner	
  
•  > jarsigner -verbose -keystore my-release-
   key.keystore my_application.apk alias_name
TB308POHJUS-L-2:temp pohjus$ jarsigner -
verbose -keystore my-release-key.keystore
BMI.apk my-alias
Enter Passphrase for keystore:
   adding: META-INF/MY-ALIAS.SF
   adding: META-INF/MY-ALIAS.RSA
  signing: res/layout/main.xml
  signing: AndroidManifest.xml
  signing: resources.arsc
  signing: res/drawable-hdpi/icon.png
  signing: res/drawable-ldpi/icon.png
  signing: res/drawable-mdpi/icon.png
  signing: classes.dex
Signing	
  for	
  Public	
  Release	
  
1.  Obtain	
  suitable	
  private	
  key	
  
2.  Compile	
  the	
  applica1on	
  in	
  release	
  mode	
  
3.  Sign	
  your	
  applica1on	
  with	
  private	
  key	
  
4.  Align	
  the	
  final	
  APK	
  packate	
  
Align	
  the	
  final	
  APK	
  Package	
  
•  zipalign	
  tool	
  ensures	
  op1mizes	
  the	
  package	
  
   for	
  running	
  in	
  device:	
  reduc1on	
  of	
  in	
  the	
  
   amount	
  of	
  ram	
  
•  > zipalign -v 4 your_project_name-
   unaligned.apk your_project_name.apk
TB308POHJUS-L-2:temp pohjus$ /Developer/android-sdk-mac_x86/tools/zipalign -v 4
BMI.apk BMI-ready-to-go.apk
Verifying alignment of BMI-ready-to-go.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
     426 META-INF/MY-ALIAS.SF (OK - compressed)
     897 META-INF/MY-ALIAS.RSA (OK - compressed)
    2021 META-INF/CERT.SF (OK - compressed)
    2440 META-INF/CERT.RSA (OK - compressed)
    3142 res/layout/main.xml (OK - compressed)
    3693 AndroidManifest.xml (OK - compressed)
    4296 resources.arsc (OK)
    5916 res/drawable-hdpi/icon.png (OK)
    9940 res/drawable-ldpi/icon.png (OK)
   11536 res/drawable-mdpi/icon.png (OK)
   13777 classes.dex (OK - compressed)
Verification succesful

TB308POHJUS-L-2:temp pohjus$ ls -al
total 88
drwxr-xr-x   5 pohjus staff     170   9   Tam   18:30   .
drwx------+ 46 pohjus staff    1564   9   Tam   16:43   ..
-rw-r--r-- 1 pohjus staff 16443       9   Tam   18:30   BMI-ready-to-go.apk
-rw-r--r--   1 pohjus staff 16435     9   Tam   18:28   BMI.apk
-rw-r--r--   1 pohjus staff    2281   9   Tam   18:28   my-release-key.keystore
TB308POHJUS-L-2:temp pohjus$
And	
  Install	
  using	
  ADB	
  
TB308POHJUS-L-2:temp pohjus$ /Developer/android-sdk-
mac_x86/platform-tools/adb install BMI-ready-to-
go.apk
700 KB/s (16443 bytes in 0.022s)
        pkg: /data/local/tmp/BMI-ready-to-go.apk
Success
TB308POHJUS-L-2:temp pohjus$
Publishing	
  to	
  Android	
  Market	
  
Or	
  just	
  use	
  Eclipse	
  

More Related Content

PDF
Realtime Web Apps in 2014 & Beyond
PDF
Real-Time Web Apps in 2015 & Beyond
PDF
C# for Java Developers
PDF
Quick Intro to Android Development
PDF
Android Essential Tools
PDF
Building Web Services
PPTX
Qt Translations
PDF
Android Http Connection and SAX Parsing
Realtime Web Apps in 2014 & Beyond
Real-Time Web Apps in 2015 & Beyond
C# for Java Developers
Quick Intro to Android Development
Android Essential Tools
Building Web Services
Qt Translations
Android Http Connection and SAX Parsing

Viewers also liked (14)

PDF
Responsive Web Site Design
PDF
Android 2D Drawing and Animation Framework
PDF
Android Wi-Fi Manager and Bluetooth Connection
PDF
00 introduction-mobile-programming-course.ppt
PDF
Android UI Development
PDF
Android Location and Maps
PDF
Android Threading
PDF
Android Data Persistence
PDF
Android Sensors
PDF
Android Multimedia Support
PDF
Android Telephony Manager and SMS
PDF
Short Intro to Android Fragments
PDF
Moved to Speakerdeck
PDF
Android Basic Components
Responsive Web Site Design
Android 2D Drawing and Animation Framework
Android Wi-Fi Manager and Bluetooth Connection
00 introduction-mobile-programming-course.ppt
Android UI Development
Android Location and Maps
Android Threading
Android Data Persistence
Android Sensors
Android Multimedia Support
Android Telephony Manager and SMS
Short Intro to Android Fragments
Moved to Speakerdeck
Android Basic Components
Ad

Similar to Android Security, Signing and Publishing (20)

DOCX
Configure &amp; send push notification on i os device
PPTX
iOS Provisioning : Running your app in an iOS device
PDF
How we integrate & deploy Mobile Apps with Travis CI
PPTX
Openshift Presentation ppt compare with VM
PPTX
Publishing app to play store
PDF
Appium_set_up
PDF
Connect.Tech- Level Up Your Game With TravisCI
PDF
Conf2015 d waddle_defense_pointsecurity_deploying_splunksslbestpractices
PDF
Securing the Web without site-specific passwords
PDF
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
PPTX
How we integrate & deploy Mobile Apps with Travis CI part 2
PDF
Flask jwt authentication tutorial
PDF
Ransomware for fun and non-profit
PPTX
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
PDF
Control infrared remote controls receiver RS-232
PPT
Intro to mobile development with sencha touch
PDF
OAuth for QuickBooks Online REST Services
PDF
DIY Transparent Release Management_2024_07.pdf
PPT
Intro to mobile development with sencha touch
Configure &amp; send push notification on i os device
iOS Provisioning : Running your app in an iOS device
How we integrate & deploy Mobile Apps with Travis CI
Openshift Presentation ppt compare with VM
Publishing app to play store
Appium_set_up
Connect.Tech- Level Up Your Game With TravisCI
Conf2015 d waddle_defense_pointsecurity_deploying_splunksslbestpractices
Securing the Web without site-specific passwords
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
How we integrate & deploy Mobile Apps with Travis CI part 2
Flask jwt authentication tutorial
Ransomware for fun and non-profit
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
Control infrared remote controls receiver RS-232
Intro to mobile development with sencha touch
OAuth for QuickBooks Online REST Services
DIY Transparent Release Management_2024_07.pdf
Intro to mobile development with sencha touch
Ad

More from Jussi Pohjolainen (20)

PDF
Java Web Services
PDF
Box2D and libGDX
PDF
libGDX: Screens, Fonts and Preferences
PDF
libGDX: Tiled Maps
PDF
libGDX: User Input and Frame by Frame Animation
PDF
Intro to Building Android Games using libGDX
PDF
Advanced JavaScript Development
PDF
Introduction to JavaScript
PDF
Introduction to AngularJS
PDF
libGDX: Scene2D
PDF
libGDX: Simple Frame Animation
PDF
libGDX: Simple Frame Animation
PDF
libGDX: User Input
PDF
Implementing a Simple Game using libGDX
PDF
Building Android games using LibGDX
PDF
Creating Asha Games: Game Pausing, Orientation, Sensors and Gestures
PDF
Creating Games for Asha - platform
PDF
Intro to Asha UI
PDF
Intro to Java ME and Asha Platform
PDF
Intro to PhoneGap
Java Web Services
Box2D and libGDX
libGDX: Screens, Fonts and Preferences
libGDX: Tiled Maps
libGDX: User Input and Frame by Frame Animation
Intro to Building Android Games using libGDX
Advanced JavaScript Development
Introduction to JavaScript
Introduction to AngularJS
libGDX: Scene2D
libGDX: Simple Frame Animation
libGDX: Simple Frame Animation
libGDX: User Input
Implementing a Simple Game using libGDX
Building Android games using LibGDX
Creating Asha Games: Game Pausing, Orientation, Sensors and Gestures
Creating Games for Asha - platform
Intro to Asha UI
Intro to Java ME and Asha Platform
Intro to PhoneGap

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Monthly Chronicles - July 2025
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Understanding_Digital_Forensics_Presentation.pptx
MYSQL Presentation for SQL database connectivity
Spectral efficient network and resource selection model in 5G networks
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
CIFDAQ's Market Insight: SEC Turns Pro Crypto

Android Security, Signing and Publishing

  • 1. Signing  and  Deploying     Android  Applica1ons   Jussi  Pohjolainen   Tampere  University  of  Applied  Sciences  
  • 2. App  Signing,  Overview   •  All  apps  must  be  digitally  signed  with   cer3ficate   –  Iden1fying  the  author  of  the  app   •  Typically  self  signed   •  Debug  key  for  debugging   •  Suitable  private  key  when  publishing   •  Crea1ng  keys  and  signing:  Keytool  and   Jarsigner  
  • 3. Debug  Mode   •  While  debugging  and  tes1ng,  you  can  compile   in  debug  mode   •  Build  tools  uses  the  Keytool  u1lity  to  generate   a  key  with  known  alias  and  password.  Key  is   used  to  sign  the  .apk  file   •  Developer  does  not  have  worry  about  this,  if   using  Eclipse!  
  • 4. Release  Mode   •  When  ready  to  release,  developer  must  sign   the  .apk  with  your  private  key   •  How?  Two  op1ons:   –  Using  Keytool  and  Jarsigner  in  command-­‐line.   Keytool  generates  private  key  and  Jarsigner  signs   the  .apk  with  the  key   –  Using  ADT  Export  Wizard  with  Eclipse  (same  than   above  but  with  GUI)  
  • 5. Signing  for  Public  Release   1.  Obtain  suitable  private  key   2.  Compile  the  applica1on  in  release  mode   3.  Sign  your  applica1on  with  private  key   4.  Align  the  final  APK  package  
  • 6. Obtain  Suitable  Private  Key   •  Private  key   –  Is  in  your  possession  and  represents  your  personal   or  corporate  en1ty   –  Validity  period  is  expected  lifespan  of  your  app   •  Recommenda1on:  over  25  years   •  Android  Market:  apps  must  have  validity  period  ending   a[er  22.10.2033   –  It's  not  the  debug  key  J  
  • 7. Obtain  Suitable  Private  Key   •  How  to  generate  private  key?   •  Use  keytool   –  > keytool -genkey -v -keystore my- release-key.keystore -alias alias_name - keyalg RSA -keysize 2048 -validity 10000
  • 8. TB308POHJUS-L-2:temp pohjus$ keytool -genkey -v -keystore my-release-key.keystore -alias my-alias -keyalg RSA - keysize 2048 -validity 10000 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: Jussi Pohjolainen What is the name of your organizational unit? [Unknown]: TMI Jussi Pohjolainen What is the name of your organization? [Unknown]: TMI Jussi Pohjolainen What is the name of your City or Locality? [Unknown]: Tampere What is the name of your State or Province? [Unknown]: Finland What is the two-letter country code for this unit? [Unknown]: FI Is CN=Jussi Pohjolainen, OU=TMI Jussi Pohjolainen, O=TMI Jussi Pohjolainen, L=Tampere, ST=Finland, C=FI correct? [no]: yes Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days for: CN=Jussi Pohjolainen, OU=TMI Jussi Pohjolainen, O=TMI Jussi Pohjolainen, L=Tampere, ST=Finland, C=FI Enter key password for <my-alias> (RETURN if same as keystore password): [Storing my-release-key.keystore] TB308POHJUS-L-2:temp pohjus$ ls -al total 88 drwxr-xr-x 5 pohjus staff 170 9 Tam 18:30 . drwx------+ 46 pohjus staff 1564 9 Tam 16:43 .. -rw-r--r-- 1 pohjus staff 2281 9 Tam 18:28 my-release-key.keystore TB308POHJUS-L-2:temp pohjus$
  • 9. Signing  for  Public  Release   1.  Obtain  suitable  private  key   2.  Compile  the  applica3on  in  release  mode   3.  Sign  your  applica1on  with  private  key   4.  Align  the  final  APK  packate  
  • 11. TB308POHJUS-L-2:temp pohjus$ ls -al total 88 drwxr-xr-x 5 pohjus staff 170 9 Tam 18:30 . drwx------+ 46 pohjus staff 1564 9 Tam 16:43 .. -rw-r--r-- 1 pohjus staff 16435 9 Tam 18:28 BMI.apk -rw-r--r-- 1 pohjus staff 2281 9 Tam 18:28 my-release-key.keystore TB308POHJUS-L-2:temp pohjus$
  • 12. Signing  for  Public  Release   1.  Obtain  suitable  private  key   2.  Compile  the  applica1on  in  release  mode   3.  Sign  your  applica3on  with  private  key   4.  Align  the  final  APK  packate  
  • 13. Sign  your  applica1on  with  private  key   •  You  now  have  the  private  key  and  the  .apk   file.   •  Sign  the  .apk  with  the  private  key  using   jarsigner   •  > jarsigner -verbose -keystore my-release- key.keystore my_application.apk alias_name
  • 14. TB308POHJUS-L-2:temp pohjus$ jarsigner - verbose -keystore my-release-key.keystore BMI.apk my-alias Enter Passphrase for keystore: adding: META-INF/MY-ALIAS.SF adding: META-INF/MY-ALIAS.RSA signing: res/layout/main.xml signing: AndroidManifest.xml signing: resources.arsc signing: res/drawable-hdpi/icon.png signing: res/drawable-ldpi/icon.png signing: res/drawable-mdpi/icon.png signing: classes.dex
  • 15. Signing  for  Public  Release   1.  Obtain  suitable  private  key   2.  Compile  the  applica1on  in  release  mode   3.  Sign  your  applica1on  with  private  key   4.  Align  the  final  APK  packate  
  • 16. Align  the  final  APK  Package   •  zipalign  tool  ensures  op1mizes  the  package   for  running  in  device:  reduc1on  of  in  the   amount  of  ram   •  > zipalign -v 4 your_project_name- unaligned.apk your_project_name.apk
  • 17. TB308POHJUS-L-2:temp pohjus$ /Developer/android-sdk-mac_x86/tools/zipalign -v 4 BMI.apk BMI-ready-to-go.apk Verifying alignment of BMI-ready-to-go.apk (4)... 50 META-INF/MANIFEST.MF (OK - compressed) 426 META-INF/MY-ALIAS.SF (OK - compressed) 897 META-INF/MY-ALIAS.RSA (OK - compressed) 2021 META-INF/CERT.SF (OK - compressed) 2440 META-INF/CERT.RSA (OK - compressed) 3142 res/layout/main.xml (OK - compressed) 3693 AndroidManifest.xml (OK - compressed) 4296 resources.arsc (OK) 5916 res/drawable-hdpi/icon.png (OK) 9940 res/drawable-ldpi/icon.png (OK) 11536 res/drawable-mdpi/icon.png (OK) 13777 classes.dex (OK - compressed) Verification succesful TB308POHJUS-L-2:temp pohjus$ ls -al total 88 drwxr-xr-x 5 pohjus staff 170 9 Tam 18:30 . drwx------+ 46 pohjus staff 1564 9 Tam 16:43 .. -rw-r--r-- 1 pohjus staff 16443 9 Tam 18:30 BMI-ready-to-go.apk -rw-r--r-- 1 pohjus staff 16435 9 Tam 18:28 BMI.apk -rw-r--r-- 1 pohjus staff 2281 9 Tam 18:28 my-release-key.keystore TB308POHJUS-L-2:temp pohjus$
  • 18. And  Install  using  ADB   TB308POHJUS-L-2:temp pohjus$ /Developer/android-sdk- mac_x86/platform-tools/adb install BMI-ready-to- go.apk 700 KB/s (16443 bytes in 0.022s) pkg: /data/local/tmp/BMI-ready-to-go.apk Success TB308POHJUS-L-2:temp pohjus$
  • 20. Or  just  use  Eclipse