Obter o nome de um APK Android usando C ++ e a classe NativeActivity

Estou escrevendo um aplicativo Android usando o NDK e o NativeActivity. Meu aplicativo depende de alguns bits de código de terceiros que são enviados como ativos. Atualmente, estou trabalhando para tentar extrair esses ativos, mantendo intacta a estrutura da pasta.

Tentei usar o AssetManager, mas para manter intacta a estrutura da pasta, parecia haver uma quantidade enorme de código envolvida, para uma tarefa simples, como a que mencionei. Desde então, mudei o foco para tentar implementar o tratamento do APK como um arquivo ZIP e extrair seu conteúdo dessa maneira. Mas isso exige que eu encontre o caminho exato para o APK.

Em um aplicativo Android normal, seria usado getPackageCodePath, mas esse é um método abstrato anexado à classe Context. Minha pergunta é como obtenho o caminho exato para o APK quando não estou usando uma atividade normal?

Também tentei chamar getPackageCodePath via JNI, mas isso travou o aplicativo por não ser possível encontrar o métod

EDIT: Isso é possível?

questionAnswers(5)

yourAnswerToTheQuestion