1. Aurora temporarily saves in /data/data/com.aurora.store/cache/Downloads
(but you need to be root in order to access that saved zip directly)
Maria Sophia wrote:
1. Aurora temporarily saves in /data/data/com.aurora.store/cache/Downloads >> (but you need to be root in order to access that saved zip directly)
Does anyone know WHY or HOW Android decides to clear Aurora's cache?
/data/data/com.aurora.store/cache/Downloads/com.package.zip
I asked that question, just now, in XDA Developers Forum, but maybe someone on this Android newsgroups understands how we can change that timing?
Q: How can we increase the time Auroa keeps the Google Play ZIP in cache?
<https://xdaforums.com/t/app-6-0-aurora-store-open-source-google-play-client.3739733/post-90545202>
Q: How can we increase the time Auroa keeps the Google Play ZIP in cache?
<https://xdaforums.com/t/app-6-0-aurora-store-open-source-google-play-client.3739733/post-90545202>
It's maybe somewhat of a side issue, but I see from that post "Like most people, I've always saved all my APKs (at the time I install them) so
that I can re-install the EXACT subversions whenever I factory reset or
set up a new device."
Perhaps I'm mistaken, but I doubt that most Android users would keep
APKs from apps they'd uninstalled. I understand that you do a /lot/ of testing, and might keep various apps to compare. I don't, however, understand why Android not only does this as default, but makes it
almost impossible to delete and perhaps even see these APKs as they're
in an inaccessible folder. With Windows and Linux (I don't know about Apple), if you try something and don't like it you uninstall it and it's gone. Well, perhaps there are some bits still hanging around, but most
of what was installed will have gone.
With Android, the dross just builds up consuming memory. I'm not even
sure if you can uninstall the APKs via adb. It might be phone-specific
and depend on whether or not it's rootable (or perhaps via Shizuku?).
Jeff Layman wrote:
Q: How can we increase the time Auroa keeps the Google Play ZIP in cache? >>> <https://xdaforums.com/t/app-6-0-aurora-store-open-source-google-play-client.3739733/post-90545202>
It's maybe somewhat of a side issue, but I see from that post "Like most
people, I've always saved all my APKs (at the time I install them) so
that I can re-install the EXACT subversions whenever I factory reset or
set up a new device."
Perhaps I'm mistaken, but I doubt that most Android users would keep
APKs from apps they'd uninstalled. I understand that you do a /lot/ of
testing, and might keep various apps to compare. I don't, however,
understand why Android not only does this as default, but makes it
almost impossible to delete and perhaps even see these APKs as they're
in an inaccessible folder. With Windows and Linux (I don't know about
Apple), if you try something and don't like it you uninstall it and it's
gone. Well, perhaps there are some bits still hanging around, but most
of what was installed will have gone.
With Android, the dross just builds up consuming memory. I'm not even
sure if you can uninstall the APKs via adb. It might be phone-specific
and depend on whether or not it's rootable (or perhaps via Shizuku?).
Hi Jeff,
It's good to hear from you, especially as I know you (and Andy) picked up Muntashirakon after I had recommended it as the best app manager out there.
You're bringing up a *lot* of complex issues, that almost nobody on Android understands, so we can go over them 1 by 1 as they're all valid concerns.
Aurora used to save Play Store APK bundles in public storage, but Android
11 made Scoped Storage mandatory. That means Aurora can no longer write
APKs anywhere except to its own private sandbox, which is located at
/data/data/com.aurora.store/cache/Downloads/{com.package.zip}
Unless rooted, none of us can access that zip file, and worse, Android
treats that cache as temporary and clears it automatically, which is why
the ZIP disappears unless we export the zip file almost immediately.
Muntashirakon works differently because it extracts the APKs that Android already installed, and the user explicitly chooses where to save them.
Which brings us to your points, which I'll take in series as you said 'em.
Q: Do most users save all their installers so they can re-install later?
A: I've always done so on every platform [except iOS ('cuz you can't)].
But I also install from APK repos using Windows web browsers.
And I extract APKs off of all my phones to keep in that archive.
The actual archive is kept on a Windows USB drive, not on Android.
You mention specifically people keeping APKs for apps they've expressly uninstalled, and that is probably true that they wouldn't want them.
But because we tend to save the APK at the moment we install the app, we would have to go back to our archives (which are usually stored on hard drives) and delete that saved APK later, which could be minutes, hours, months or years later, when we decide to uninstall that particular app.
I disagree with you on some points but agree on others when you say Android "makes it almost impossible to delete and perhaps even see these APKs as they're in an inaccessible folder", as some of that is true but some not.
1. Android forced Aurora to save the APK in cache but that cache is easy
to access if we're rooted (but impossible to access if not rooted).
2. But if you're fast enough, you can EXPORT out of Aurora, which was my
revelation for this PSA! But you have to be fast. Real fast. Minutes.
1. Muntashirakon, on the other hand, always has access to the base.apk
(plus splits) that Android actually installed on your system.
2. Muntashirakon can EXTRACT those base APKs (as can adb) any time
as long as the app is still installed on your system.
3. This is because Android never deletes the APK of any installed app.
(Once you uninstall the app, then Android deletes that base.apk).
I think I need to clarify this sentence you said of "With Windows and Linux (I don't know about Apple), if you try something and don't like it you uninstall it and it's gone", this is also true of Android.
The only way Android is different is that Android always saves the base APK (and now splits) if the app is installed. All other platforms don't necessarily save the installer, although on Windows, if you install using
an installer, that installer usually isn't deleted automatically either.
I agree it's confusing but once you know it, it starts to make sense.
I agree it's confusing but once you know it, it starts to make sense.
Just for clarity, what I was talking about was getting apps from the
Play Store and installing them from that on an unrooted phone, as that's what the majority of Android phone users would do. I now understand that Aurora and Muntashirakon deal with installation in other ways (I'd often wondered why Muntashirakon pops up a message about using that to install
an app rather than the Android OS installer, so you've explained that!).
I think I was getting at least partially confused by what is meant by Android /saving/ APKs. I thought that this was a /permanent/ saving of
any APK which had been downloaded when an app was tried for the first
time. From what I now understand Android saves the APK of /any/ app
which has been installed but /not/ uninstalled, even if it is never
used. If it is uninstalled, then Android does delete the APK from its "hidden" folder as noted in your point 3 above.
As that folder is hidden, though, how could you ever check what's in it
and if it had been deleted (from an unrooted phone)? Do I assume that
when an app is updated the APK in that hidden folder is updated in some
way too, so that only the latest version is kept?
I haven't used Windows in over 11 years (last one was Win7), so can't remember what it did or even be aware that it might have changed. With
Linux I can download, for example, a *.deb or tar.gz and install from
that without keeping those files. I /could/ keep them for reinstallation purposes if I wished, but have never bothered as they're available in a
repo somewhere (and have usually been updated).
Thanks for the helpful explanation.
adb shell pm path com.package.nameIf it's a monolithic APK, then you get one line output, such as:
The APK is the executable.
Apparently if we use Aurora to spoof a "beast" device and install those high-end APKs, Muntashirakon will then extract exactly those high-end APKs.
Jeff Layman wrote:
I agree it's confusing but once you know it, it starts to make sense.
Just for clarity, what I was talking about was getting apps from the
Play Store and installing them from that on an unrooted phone, as that's
what the majority of Android phone users would do. I now understand that
Aurora and Muntashirakon deal with installation in other ways (I'd often
wondered why Muntashirakon pops up a message about using that to install
an app rather than the Android OS installer, so you've explained that!).
I think I was getting at least partially confused by what is meant by
Android /saving/ APKs. I thought that this was a /permanent/ saving of
any APK which had been downloaded when an app was tried for the first
time. From what I now understand Android saves the APK of /any/ app
which has been installed but /not/ uninstalled, even if it is never
used. If it is uninstalled, then Android does delete the APK from its
"hidden" folder as noted in your point 3 above.
As that folder is hidden, though, how could you ever check what's in it
and if it had been deleted (from an unrooted phone)? Do I assume that
when an app is updated the APK in that hidden folder is updated in some
way too, so that only the latest version is kept?
I haven't used Windows in over 11 years (last one was Win7), so can't
remember what it did or even be aware that it might have changed. With
Linux I can download, for example, a *.deb or tar.gz and install from
that without keeping those files. I /could/ keep them for reinstallation
purposes if I wished, but have never bothered as they're available in a
repo somewhere (and have usually been updated).
Thanks for the helpful explanation.
Hi Jeff,
All good questions, where when I thought about answering you without too
many words, I realized all these years I've accidentally led you astray.
I love you're asking questions because it shows you're thinking, and absorbing, and even more importantly, you're forcing me to clarify things!
In Windows, if we install, oh, say, Irfanview.msi, it creates irfanview.exe but in Android, if we install package.apk, it just *copies* package.apk.
The APK is the app.
The APK is the executable.
So it doesn't waste space.--
The downloaded APK is the actual program.
Which answers your "update" question also, because when an app is updated, (or even downgraded, which Muntashirakon's app installer can do), the existing APK is replaced, so there is only one APK of any given name.
And to answer your question about checking for it, adb finds it easily.
C:\> adb shell pm path com.package.name
If it's a monolithic APK, then you get one line output, such as:
package:/data/app/~~[random]/com.package.name-[string]/base.apk
Otherwise you'll get multiple lines, one for each entity:
package:/data/app/~~[random]/com.package.name-[string]/base.apk
package:/data/app/~~[random]/com.package.name-[string]/split_config.arm64_v8a.apk
package:/data/app/~~[random]/com.package.name-[string]/split_config.en.apk
package:/data/app/~~[random]/com.package.name-[string]/split_config.xxhdpi.ap k
As for Muntashirakon App Manager also being an installer, yes, it is registered to open an APK that you tap on, so it's one of your choices.
The Muntashirakon installer does fancy things, but mostly if your rooted. Otherwise, I don't know if it is any better than the package installer.
As for Linux, when you run a .deb, it's essentially a script that says
"Take this binary and put it in /usr/bin/."
"Take these icons and put them in /usr/share/icons/."
"Take these libraries and put them in /lib/."
It's the same with any Windows msi installer, which is an unpackager.
Android doesn't scatter files. It uses a Sandboxed Architecture.
When you install an APK, you're really just copying that APK.
Android creates a spot for that app & just drops the APK inside.
It's kind of like when you download a portable app for Windows.
The APK is the executable.
I'm more than a bit confused by that!
According to <https://en.wikipedia.org/wiki/Apk_(file_format)#Package_contents>, an
APK file is equivalent to a zip file. It contains several files and
folders, including lib files (with compiled code for various processors)
and classes.dex files (with an updated format) intended to be used by Android Runtime.
And according to <https://www.browserstack.com/guide/what-is-an-apk-file>:
* When an APK is installed, Android unpacks the contents, extracts
necessary files, and places them in the appropriate system folders.
* The Android OS then reads the app's manifest to understand its
structure, permissions, and components to run the app smoothly.
Or are you saying that it's all done "automatically" from an APK when an icon on the desktop is clicked?
The Wikipedia also said that it contained "compiled code".
That's both right and wrong.
If it's an apk that is not yet installed, there is no compiled code.
If it's an apk that has been extracted, there is no compiled code.
| Sysop: | DaiTengu |
|---|---|
| Location: | Appleton, WI |
| Users: | 1,113 |
| Nodes: | 10 (0 / 10) |
| Uptime: | 492335:46:13 |
| Calls: | 14,238 |
| Files: | 186,312 |
| D/L today: |
3,563 files (1,160M bytes) |
| Messages: | 2,514,866 |