Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work app store #2553

Draft
wants to merge 52 commits into
base: master
Choose a base branch
from
Draft

Conversation

fynngodau
Copy link
Contributor

@fynngodau fynngodau commented Sep 22, 2024

Supersedes and contains #2500. Supersedes and contains #2521.

Allows users to download apps to their work profile using the special vending component "Work app store". This component is disabled, and enabled only when a work profile is added (which in turn can only be done by a device or profile admin).

Yet to do:

  • rewrite download code for components (Implement SplitInstallService #2500 (comment))
    • don't allocate RAM for the entire download
    • download directly to installer session
  • add meaningful progress information
    • to store app
    • while downloading in the background through store app
    • while splitinstalling
  • determine and verify meaning of policy field in /getEnterpriseClientPolicy
  • test additional dpc services
  • show Work app store only after adding work account

Current screenshot:

Screenshot_1727017306

DaVinci9196 and others added 30 commits August 19, 2024 19:22
Verify that work accounts are only added by device owners or profile
owners.

For instance, Microsoft Intune will create a work profile (moving itself
to the work profile in the process) before using the work account servce
to create a work account, so at that point it will already be profile
owner. Apps that are not the profile owner will subsequently not be able
to disable the work account authenticator or remove the work account.
The personal account would not have an owner and thus no application
could enable the work account provider there.
Otherwise response values cannot be written to our intent.
Installed packages are deleted after installation, but if installation
fails and never retried (for instance: one large package is downloaded
successfully, then a small package is downloaded unsuccessfully due to a
network error, then the user uninstalls the app because it doesn't
work), this can still lead to storage leaks from
downloaded-but-never-installed apps. We should use `cacheDir` instead:
it will allow the system and users to clear the cache themselves.
@fynngodau fynngodau marked this pull request as draft September 22, 2024 11:29
@ale5000-git
Copy link
Member

@fynngodau
Can it help with Shelter? https://f-droid.org/it/packages/net.typeblog.shelter/

@fynngodau
Copy link
Contributor Author

@ale5000-git No. This PR adds support for Device Policy Controller apps that want to register a Work google account. See #2521.

@ale5000-git
Copy link
Member

Shelter use a work profile, and I remember it was failing on my device but I'm not sure if the issue is with microG or with the ROM.

@mar-v-in mar-v-in added this to the 0.3.5 milestone Sep 24, 2024
Allows downloading large applications
* reduces temporary storage usage
* speeds up installation by a little bit
Storage leaks can still happen if session commits have errors (for
instance, because the device was shutdown during installation), as those
sessions can still be reopened and retried according to docs. However,
we may expect all dangling sessions to be cleared after a certain
timespan in the magnitude of a day.
@DaVinci9196
Copy link
Contributor

@fynngodau Can the download and notification process of game sub-packages be incorporated into this project? The corresponding functions have been implemented in #2506.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants