-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Docs - Create #1625 - Android app support #3267
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- What would be the error message if user doesn’t have Windows Subsystem for Android enabled, or is using Windows 10?
- What would be the error message if ADB isn’t installed?
- What about android app bundles like AAB/APKS/APKM/XAPK?
- What would the uninstall process look like?
- What would the upgrade process look like?
- Would
--scope machine
be applicable or inapplicable? - What considerations need to be made on the validation pipelines to test APKs? Would the signature of all APKs need to be validated? Would we need to validate a debug cert wasn’t used?
- What happens when the package conflicts with an existing package of the same name when attempting to install?
- How would these apps be handled by export
|
||
Windows 11 or newer | ||
Windows Subsystem for Android | ||
ADB (if it ends up being the method of installation) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ADB (if it ends up being the method of installation) | |
ADB (if it ends up being the method of installation) |
The spec should define the method of installation
|
||
### Android YAML manifest | ||
|
||
The "InstallerType" field in the YAML manifest file specifies the type of the application. A new InstallerType "Android" or "APK" will be added to show that a given application is an Android app. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which is it - Android
, or APK
? Specs should be unambiguous.
apk
makes the most sense to me
|
||
### Package generation | ||
|
||
WinGetCreate will download the package and extract metadata from AndroidManifest.xml, automatically filling out all data excluding the short desciption |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wingetcreate information should be a separate specification at the winget-create repository
|
||
### Package installation | ||
|
||
Either ADB could be used to install the application, or the method that Microsoft Store installs Android apps could be utilized. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be disambiguous
Version: 1337.0 | ||
Name: F-Droid | ||
Publisher: F-Droid | ||
AppMoniker: fdroid |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is AppMoniker
?
|
||
1. Windows Subsystem for Android is installed | ||
2. ADB must be installed on the machine | ||
3. It must connect to the Subsystem, bypassing the developer mode restriction, which I think the uninstallation in control panel already has. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don’t think winget should be bypassing restrictions. If the user has developer mode disabled it could be due to group policy or intune restrictions and sysadmin decisions need to be respected
A nice feature in the manifest would be for adding the adb install [flags](https://adbshell.com/commands/adb-install) for installation of apps that require it. | ||
## UI/UX Design | ||
|
||
Installing a PWA will be similar to installing other application types currently supported by winget, using the install command. The -i flag will not be implemented due to it's impracticality. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PWA or APK?
|
||
### Security | ||
|
||
Android has security concerns. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How exactly would this featue impact security, more specifically than the blanket statement that there are security concerns?
|
||
## Future considerations | ||
|
||
1. Android 14 "Upside Down Cake" will restrict the installation of apps that target any version before 6.0 "Marshmallow" due to security concerns, however --bypass-low-target-sdk-block can bypass this limitation. Similar, certain new Android devices, such as the Pixel 7 and Pixel Tablet, have no support for 32-bit apps and will not be able to run 32 bit code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don’t understand what the Pixel 7 or Pixel Tablet have to do with running apps on WSA
For Windows 10, the error would say “You are using Windows 10. Installation of Android apps requires Windows 11 or higher.” and if not installed: “Windows Subsystem for Android is not currently installed, please install via running this command: COMMAND”. If the user has Windows 11 but no requirements: “Use of Android apps requires 8 GB of RAM or more. Please upgrade the RAM on your computer.”, for CPU “Use of Android apps is not supported on your CPU. Please purchase a new CPU that supports Android apps.” and if using HHD, “Your storage device is too slow to run Android apps. Please upgrade to an SSD.” |
Co-authored-by: Kaleb Luedtke <trenlymc@gmail.com>
This comment has been minimized.
This comment has been minimized.
@upintheairsheep can you rename the file to have .md extension so it's easier to view here, please? |
…id app support.md
This comment has been minimized.
This comment has been minimized.
I did. |
Hello? Is anyone there? |
This seems to be a pair of specifications with APK (Android Package Kit) and PWA (Progressive Web Application). I don't fully understand the WSA( Windows Subsystem for Android) well enough yet to tease all this apart yet. I think we'll need a bit more investigation on our side as WinGet can't install the WSA and potentially a "Store" for APKs to make them available. I think there may also need to be some additional work to reason about how the upgrade scenario might work. |
I think we also may run into cases where there is a "Windows App" and an APK for the same package. We will likely need some settings/preferences to determine which to install in that case. I know there are some existing issues. We should link to those so we can figure out the right sequencing here. |
I used the PWA documentation as a base for this issue. Any writings related to PWAs are outdated. |
Just append “-android” to the identifier, and add “(Android)” to the name |
“.Android” may work as well similar to how Geekbench versions are PrimateLabs.Geekbench.5 for instance |
I think this will add confusion for users. Someone is going to be in "Dev Home" and search for some popular app and likely not understand the difference between "foo" and "foo-android". I think this falls into the category of: We can have a default behavior of the following priority order:
Then we can allow users to specify via |
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
“.Android” may work as well similar to how versions that act as different packages like Geekbench and Scratch are PrimateLabs.Geekbench.5 for instance. The installer type should not apply as the packages are separate. |
Denelon wants to say that you can do Edit: Using |
Why not just for example 3u.3utools-android |
One of the reasons would be locale metadata duplication, making it harder for moderators to ensure consistency b/w the Windows and Android manifests for the same package. Hence, adding a new installer in the same manifests containing Windows installers would be easier. I don't see any good reason to create a whole new package identifier for the same package, except in cases where we need WinGet to behave in a particular manner. |
|
What about .Mobile? |
—installertype should only be for EXE, MSI, MSIX, APPX that are of the same version of the package. |
Well, then a flag |
You know we can just add apps only available for Android for now, with no
Windows version available on that app. Seriously, how did this thread go
downhill?
…On Sunday, June 18, 2023, Vedant ***@***.***> wrote:
Well, then a flag --android or --only-android can be added to search
command, but the underlying searching algorithm would be based on
InstallerType only.
—
Reply to this email directly, view it on GitHub
<#3267 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKNKRXGH26ATXU2PH2KBYFLXL5ONHANCNFSM6AAAAAAYMWI3O4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Merge? |
Hello @upintheairsheep, We usually merge spec after or near when implementation is done. There may be unknowns or changes needed during the actual implementation. So we'd like to leave this pr open for discussion and it could be extended to include future dev spec. Thanks |
Good idea. But would require the interactive only thing to be done. |
Additionally, it is important to note that not all Android apps have Windows or PWA versions of themselves. |
We're doing work on "InstallerType" in the client for filtering as a part of WinGet download. I'm sure that will accrue to the work here. |
I believe this should be closed since WSA is deprecated. |
Microsoft Reviewers: Open in CodeFlow