2010-03-24 14 views

Respuesta

107

Las aplicaciones preinstaladas se encuentran en la carpeta /system/app. Las aplicaciones instaladas por el usuario están en /data/app. Supongo que no puedes acceder a menos que tengas un teléfono rooteado. que no tienen un teléfono raíces aquí, pero tratan a cabo este código:

public class Testing extends Activity { 
    private static final String TAG = "TEST"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     File appsDir = new File("/data/app"); 

     String[] files = appsDir.list(); 

     for (int i = 0 ; i < files.length ; i++) { 
      Log.d(TAG, "File: "+files[i]); 

     } 
    } 

Se hace una lista de los aPKs en mi HTC Magic arraigado y en la UEM.

+0

Esto funcionó como un encanto en Motorola Droid y también en Nexus One, ambos sin enraizar. – Gubatron

+0

Ok, nunca dijiste lo que querías :) – Macarse

+0

Quiero poder leerlos y hacer cosas con ellos. Afortunadamente son legibles. – Gubatron

3

En/data/app pero para protección contra copia, no creo que pueda acceder a ella.

+2

Entonces, ¿cómo funciona exactamente una aplicación que permite compartir APK a través de Bluetooth? ¿Cómo lo hicieron? –

7

Puede extraer aplicaciones con ADB. Están en/data/App /, creo.

adb pull (location on device) (where to save) 

Tenga en cuenta que debe enraizar su teléfono para extraer aplicaciones protegidas contra copia.

25

No hay una ubicación estándar, sin embargo, puede usar el PackageManager para obtener información sobre los paquetes y la clase ApplicationInfo que puede obtener contiene información variada sobre un paquete en particular: la ruta a su archivo .apk, la ruta a sus datos directorio, la ruta a .apk solo de recursos (para aplicaciones de bloqueo directo), etc. Tenga en cuenta que puede o no tener permiso para leer estos directorios dependiendo de su relación con la otra aplicación; sin embargo, todas las aplicaciones pueden leer el recurso .apk (que también es el archivo .apk real para la aplicación no bloqueada).

Si solo está hurgando en el shell, las aplicaciones actualmente sin enrutamiento directo se encuentran en /data/app/.apk. El usuario de shell puede leer un archivo .apk específico, aunque no puede mostrar el directorio. En una versión futura, la convención de nomenclatura cambiará ligeramente, por lo tanto, no espere que siga siendo la misma, pero si obtiene la ruta de la .apk desde el administrador de paquetes, puede usarla en el intérprete de comandos.

+2

¿Qué es una "aplicación de bloqueo hacia adelante"? –

+1

Es un antiguo mecanismo de protección de copia que instaló el .apk con permisos que solo permitían que la aplicación lo leyera. – hackbod

0

cuando instalé mi aplicación en el emulador, se notaba mi el archivo APK en

datos

/app Luego utiliza datos ls/app // para ver si existe o no

Después de instalar su aplicación, simplemente use ls command vie shell y compruebe el directorio deseado, pero depende del tipo de aplicación que intente instalar. Utilicé este método en Install Señalar si algo está mal.

+0

También estoy tratando de localizar los apk, pero lo que encontré es que no se pueden ubicar todos los apks, por lo que sugiero el método de rooting. No pude obtener todos los apks instalados. Por lo tanto, es mejor rootear su teléfono y obtener todos los apk utilizando Titanium Backup y obtener más control sobre su teléfono. –

4

Si está rooteado, descargue la aplicación Root Explorer. El mejor administrador de archivos para usuarios rooteados. De todos modos, el sistema/aplicación tiene todos los apk predeterminados que vienen con el teléfono, y data/apk tiene todos los apk de las aplicaciones que ha instalado. Simplemente mantenga presionada la aplicación que desee (mientras esté en Root Explorer), vaya a la carpeta/sdcard y simplemente péguelo.

17

Las aplicaciones preinstaladas suelen estar en/system/app y las aplicaciones instaladas por el usuario están en/data/app.

Puede usar "adb pull", pero necesita conocer la ruta completa del archivo APK. En el emulador, puede obtener una lista de directorios usando "adb shell" + "ls". Pero en un dispositivo Android, no podrás hacer eso en la carpeta "/ data" por razones de seguridad. Entonces, ¿cómo averiguar la ruta completa del archivo APK?

Puede obtener una lista completa de todas las aplicaciones instaladas escribiendo un programa que consulte el PackageManager. Fragmento de código corto a continuación:

PackageManager pm = getPackageManager(); 
List<PackageInfo> pkginfo_list = pm.getInstalledPackages(PackageManager.GET_ACTIVITIES); 
List<ApplicationInfo> appinfo_list = pm.getInstalledApplications(0); 
for (int x=0; x < pkginfo_list.size(); x++){    
    PackageInfo pkginfo = pkginfo_list.get(x); 
    pkg_path[x] = appinfo_list.get(x).publicSourceDir; //store package path in array 
} 

También puede encontrar aplicaciones que proporcionen dicha información. Hay muchos de ellos. Try this one (AppSender).

1

si está utilizando DDMS Eclipse Goto y después de explorador de archivos allí verá carpeta System/Aplicaciones y los archivos APK de allí

85

Si lo que desea es obtener un archivo APK de algo que ha instalado previamente, haga lo siguiente :

  1. Get AirDroid desde Google Play
  2. acceder a su teléfono utilizando AirDroid desde su navegador web para PC
  3. Vaya a Aplicaciones y seleccione la aplicación instalada
  4. Haga clic en el botón "descargar" para descargar la versión APK de esta aplicación desde su teléfono

No es necesario a raíz de su teléfono, use adb, o escribir cualquier cosa.

+0

funciona muy bien en osx también, gracias! – jamescampbell

+1

Downvoted porque esto realmente no responde la pregunta. ¿Qué ocurre si el OP desea usar ADB, para poder usarlo en dispositivos donde la depuración está autorizada, pero olvidada la contraseña o la pantalla rota? – Penn

8

Si usted está buscando el camino de una aplicación específica, una solución rápida y sucia es simplemente grep el informe de error:

$ adb bugreport | grep 'dir=/data/app' 

No sé que esto proporcionará una lista exhaustiva, por lo puede ayudar a ejecutar la aplicación primero.

3

Utilice esta lista a todos los .apks en/data/app/

adb bugreport | grep 'package name="' | grep 'codePath="/data' | cut -d'"' -f4 
0

Otra manera de conseguir el apk s no se puede encontrar, en un dispositivo arraigada está con la caja de herramientas rom.

Hacer una copia de seguridad mediante el administrador de la aplicación y luego ir a storage/emulated/appmanager y comprobar cualquiera sistema de aplicación de copia de seguridad ousuario de la aplicación de copia de seguridad.

0

Para encontrar un apk, descargue e instale el Bluetooth App Sender de Play store. Una vez que la instalación se complete, abra el Bluetooth App Sender. Mostrará todas las aplicaciones (.apk) instaladas en su dispositivo, luego podrá transferir fácilmente la aplicación a su PC a través de Bluetooth.

68

Puede usar gestor de paquetes (pm) sobre adb shell a la lista de paquetes:

adb shell pm list packages 

y para mostrar donde el archivo es .apk:

adb shell pm path com.king.candycrushsaga 
package:/data/app/com.king.candycrushsaga-1/base.apk 

Y adb pull para descargar el apk.

adb pull data/app/com.king.candycrushsaga-1/base.apk 
+8

Esta debería ser la respuesta aceptada. –

+3

Gran respuesta. Es como un encanto. –

+2

Debe aceptarse – Penn

0

A diferencia de lo que está escrito en la respuesta elegida, no es necesario la raíz y es posible obtener los APK de las aplicaciones instaladas, que es lo que he hecho en mi aplicación (here) .Ejemplo:

List<PackageInfo> packages=getPackageManager().getInstalledPackages(0); 

Entonces, para cada uno de los elementos de la lista, se puede acceder a packageInfo.applicationInfo.sourceDir, que es la ruta completa del archivo APK de la aplicación instalada.

7

Instalar de mercado

Es el comportamiento del mercado si desea mantener el apk después de la instalación. Google play no mantiene el apk después de la instalación. Otros mercados de terceros pueden tener diferentes comportamientos.

Instalar desde el desarrollo de herramientas/debug (ADB, eclipse, Android Studio)

Cuando instalamos el apk de la herramienta de depuración, invocar directamente adb install o desde Eclipse estudio/android, el apk será transferido (adb push) a un directorio público de lectura y escritura, generalmente /data/local/tmp/. Después de eso, la herramienta usará el comando pm para instalar, se eliminará la apk temporal en /data/local/tmp/ después de la instalación exitosa.

Podríamos obtener esta información del resultado de depuración de la siguiente manera.

$ adb install bin/TestApplication.apk 
3155 KB/s (843375 bytes in 0.260s) 
    pkg: /data/local/tmp/TestApplication.apk 
Success 

Cómo mantiene el sistema de apk

Por supuesto, el sistema tiene que almacenar todos los archivos APK en alguna parte. Hay tres lugares para que el sistema mantenga los apks básicos en los diferentes tipos de apk.

  1. para el ganado aplicación

Aquellos se envían generalmente en el dispositivo de fabricación, incluyendo la aplicación central para el sistema en funcionamiento y servicio de Google, puede encontrarlos en el directorio /system/app y /system/priv-app.

  1. usuario instala la aplicación

La mayoría de los archivos apk entran en esta categoría. Estos usuarios generalmente se instalan desde el mercado por los usuarios o por adb install sin la opción -s. Puede encontrarlos en el directorio /data/app para un dispositivo rooteado.

  1. aplicación en sdcard

Si el apk permitir su ubicación de instalación en la tarjeta sd con android:installLocation="auto" en su manifiesto, la aplicación se puede mover a sdcard del menú de administrador de aplicación del sistema. Estos apk se encuentran generalmente en la carpeta segura de sdcard /mnt/sdcard/asec.

Otra forma de forzar la ubicación de instalación para sdcard es usando el comando adb install -s apk-to-install.apk.

Como nota, los archivos de la aplicación preinstalada ya no están en un solo archivo .apk. Hay una carpeta que contiene archivos para cada aplicación preinstalada en el directorio /system/app o /system/priv-app para la versión más reciente de Android.

3
  • datos/app
  • system/app
  • sistema/priv aplicación
  • mnt/ASEC (cuando se instala en la tarjeta sd)

Puede tirar de las .apks de cualquiera de ellos:

ADB tirón/mnt/ASEC

+0

Descargue los archivos apk de Android de [AndroidAPKsGet] (http://androidapksget.blogspot.com). – NomanJaved

1

. Los archivos .apk se pueden encontrar en/data/app/directory. Utilizando ES File Explorer podemos acceder a estos archivos .APK.

0

Bueno, vine a este post porque quería volver a instalar alguna aplicación que me gustaba mucho. Si este es tu caso, solo ve a Google Play y busca Mis aplicaciones, la pestaña Todos, y encontrarás una manera de reinstalar alguna aplicación que te haya gustado. Me enfrenté a un problema que no pude encontrar buscando una aplicación, pero estaba allí en Mis aplicaciones para poder reinstalar en mi nuevo móvil;)

Cuestiones relacionadas