Obtener el nombre de un APK de Android usando C ++ y la clase NativeActivity

Estoy escribiendo una aplicación de Android con NDK y NativeActivity. Mi aplicación depende de algunos bits de código de terceros que se envían como activos. Actualmente estoy trabajando para tratar de extraer esos activos manteniendo la estructura de carpetas intacta.

Intenté usar AssetManager, pero para mantener intacta la estructura de carpetas, parecía que habría una gran cantidad de código involucrado, para una tarea simple como la que mencioné. Desde entonces he cambiado el foco para tratar de implementar el tratamiento del APK como un archivo ZIP y extraer su contenido de esa manera. Pero eso requiere que encuentre la ruta exacta a la APK.

En una aplicación de Android normal, se usaría getPackageCodePath, pero este es un método abstracto asociado a la clase Context. Mi pregunta es ¿cómo obtengo la ruta exacta al APK cuando no uso una actividad normal?

También intenté llamar a getPackageCodePath a través de JNI, pero eso bloqueó la aplicación por no poder encontrar el método.

EDIT: ¿Es esto posible?

Respuestas a la pregunta(5)

Su respuesta a la pregunta