Package NVDA for the Windows Store#7851
Conversation
…Helper macros, and remove a pre-vista TSF check.
…r is build and revision is 0
…appx anymore (Windows Store does that).
…dcoded separately in the appx manifest for windows store.
* storeSubmition: not signed, and a publisher ID matching NV Access Limited's Store publisher ID. Suitable for submitting to the Windows Store via NV Access Limited's developer account * sideLoadable: signed by NV Access Limited, suitable for installing on a Windows 10 system manually as a side-loaded app for testing.
… (was for debugging).
|
Hi, I suggest adding a what’s new entry under “new features” section and a short sentence explaining possible limitations similar to what we have for some items in what’s new entry with nested lists). Thanks.
|
|
I agree we should document this in the What's new some how, but I am
still considering the best way to go about this. Publishing in the store
will not happen automatically for Master snapshots, nor will an official
NvDA release be available in the store for some time yet.
Therefore, although this is the same code base, the normal NVDA from
nvaccess.org and the one in the store are very separate from each other.
Try builds of this branch will produce a side-loadable appx, but I would
not recommend using this other than purely for testing as you can only
side-load on Windows 10 Desktop (not 10 S), and the store app provides
no advantages to the user.
|
|
Hi, how about asking Microsoft if we can use “preview rings” concept for Store apps (if that even exists), as some MS apps are known to ship with preview features for Insiders? Thanks.
|
|
How about dealing with the what's new of future versions of NVDA describing features that aren't available in the store version of NVDA? Wouldn't this cause ambiguity for users? |
| DisplayName="%productName%" | ||
| Description="%description%" | ||
| Square150x150Logo="appx_images/nvda_150x150.png" | ||
| Square44x44Logo="appx_images/nvda_44x44.png" |
There was a problem hiding this comment.
Shouldn't cause a problem, but the indentation is strange here.
| packagePublisher="CN=83B1DA31-9B66-442C-88AB-77B4B815E1DE" | ||
| packagePublisherDisplayName="NV Access Limited" | ||
| productName="NVDA Screen Reader (Windows Store Edition)" | ||
| else: # not for submition, just side-loadable |
There was a problem hiding this comment.
typo: submition -> submission
|
Hello. I think in the future you'll need to send the add-ins to the Microsoft store. And I support the suggestion to talk to Microsoft about the possibility of publishing the builds Nvda next-master. |
|
This might require an "in process" blog entry to explain. Documenting via "what's new" may not be sufficient. |
|
I think this should be noted on the Windows 10 Store page for NVDA. This
should be noted in the userguide. While NVDA is running the first time
on Windows 10S, NVDA could bring up a separate Message in the welcome
Dialog.
Not english-speaking people won't read "in process" blog so this should
be translated.
Who translates the NVDA page in the Windows 10 store? Is NVACCESS able
to submit translated versions? I think this should be answered before
NVDA goes to Store
|
|
One is forced to ask but one major question.
Who in their right mind would use such a Windows 10 system in the first
place. I was given to understand that for those needing to use a
screenreader an update to full windows 10 would be allowed.
I may be being a little thick here, but other than to tell people how
rubbish windows 10s actually is what is the point of even bothering?
Brian
bglists@blueyonder.co.uk
Sent via blueyonder.
Please address personal email to:-
briang1@blueyonder.co.uk, putting 'Brian Gaff'
in the display name field.
----- Original Message -----
From: "Michael Curran" <notifications@github.com>
To: "nvaccess/nvda" <nvda@noreply.github.com>
Cc: "Subscribed" <subscribed@noreply.github.com>
…Sent: Wednesday, December 13, 2017 5:40 AM
Subject: [nvaccess/nvda] Package NVDA for the Windows Store (#7851)
### Link to issue number:
None
### Summary of the issue:
The Windows 10 S Operating System (recently introduced by Microsoft) is a
locked-down version of Windows 10, that only allows the user to run apps
from the Windows Store.
For NVDA to run on Windows 10 S, it is necessary for NVDA to be packaged
as a store app, and submitted to the Windows store.
### Description of how this pull request fixes the issue:
This PR allows NVDA to run within a Windows Desktop bridge app container
by disabling certain features while in this container, that would either
fail or would go against store policy. It also changes the build system to
produce two extra files:
* An unsigned NV Access branded appx package, suitable for submitting to
the Windows store for validation, signing and publishing, and
* An appx package signed with our own authenticode signing certificate,
suitable for side-loading directly onto a Windows 10 PC in Developer Mode.
These packages do not contain any executables or dlls not needed to run as
a store app. E.g. hooking dlls, UIAccess executables etc are specifically
ecluded from the packages as they would cause validation to fail.
Other than building the packages, the following changes were made to NVDA:
* All executables and dlls are now signed using SHA256 encryption as
required by the Windows Store. Previously we used SHA1.
* the config module now has a new variable: isAppX. this is True if
running in an app container (I.e. as a store app or side-loaded).
* If NVDA detects it is in an app container:
* NVDAHelperRemote is not initialized (I.e. there is no process
injection).
* Add-ons are disabled due to store policy, and it is impossible to
install them in this copy of NVDA.
* NVDA's user configuration is kept in an "nvda_appx" directory in
appData, rather than "nvda", as the config cannt be shared between it and
another installed copy of NVDA. The major reason being the other config
may refer to add-ons which are unavailable.
* NVDA does not look for custom appModules, brailleDisplayDrivers,
globalPlugins or synthDrivers in the user config directory. Due to store
policy we cannot currently allow any custom code.
* If NVDA receives a queryEndSession message, it registers to be
restarted, as Windows is closing our store app due to an update.
* Launching the Python console is disabled due to current Store policy.
* The Add-ons manager is unavailable (as there are no add-ons).
* Creating a portable copy from the Tools menu is not available, as this
copy of NVDA is missing executables and dlls necessary to run on other
systems.
* the reload plugins item in the Tools menu is not available, as there is
no custom code anyway.
* EaseOfAccess is not notified about this copy of NVDA
### Testing performed:
* Side-loaded the NVDA package on Windows 10 Pro and navigated the Start
screen, File Explorer, Microsoft Word, Microsoft Edge.
* Installed a hidden store-submitted package from the Windows store on
Windows 10 S, and navigated the start screen, used File explorer, used
Microsoft Edge.
### Known issues with pull request:
There should be absolutely no changes to NVDA when not running in an app
container.
However, the following features are unavailable when running as a store
app:
* No process injection. This means no access to Mozilla Firefox, google
Chrome, or Internet Explorer. the only viable browser is Edge. Further to
this, There is also no support for Microsoft Word, however #7849 fixes
this.
* No add-ons. Currently this is not allowed by Store policy. However, in
future we could consider packaging add-ons as Store extensions.
* No Python console. Again, due to Store policy.
* No support for running on the logon screen or UAC screens. Store apps
can only run on the user's logged in desktop at this point in time.
* No support for touch input or Audio ducking. This is due to store apps
not being allowed to run with the UIAccess privilidge. However, this
limitation is currently being actively investigated by Microsoft.
It is faire enough to say this is a very cut-down version of NVDA at this
point in time. However, one of the primary reasons for this work was to
investigate the limitations of running as a store app, and to work with
Microsoft to research solutions.
### Change log entry:
Changes for developers:
* A new "isAppX" variable in the config module can be used to detect if
NVDA is running as a Windows Desktop Bridge Store app.
You can view, comment on, or merge this pull request online at:
#7851
-- Commit Summary --
* Compile NVDA with the Windows 10 SDK, replace GetVersion with
versionHelper macros, and remove a pre-vista TSF check.
* Merge branch 'master' into win10sdk
* Prototype appx package by running scons appx
* appveyor should also build the appx package
* test appveyor 1
* test appveyor 2
* test appveyor 3
* test appveyor 4
* test appveyor 5
* test appveyor 6
* test appveyor 7
* test appveyor 8
* test appveyor 9
* Test appveyor 10
* Disable more features that are incompatible with Windows Store policy
* Merge branch 'master' into windows10s
* More fixes
* Restart on Windows store updates
* Change publisher to match Windows store, and set appx version so minor
is build and revision is 0
* Hardcode certain Windows Store publisher details, and don't sign the
appx anymore (Windows Store does that).
* Change back the publisher to NV Access in appveyor.yml. It is now
hardcoded separately in the appx manifest for windows store.
* remove bad attribute in appxmanifest.xml
* scons appx now produces two appx files:
* Fix publisher
* Merge branch 'master' into windows10s
* Merge branch 'master' into windows10s
* Add some comments, and don't force NVDA to always identify asn a appX
(was for debugging).
-- File Changes --
M appveyor.yml (2)
A appx/appx_images/nvda_150x150.png (0)
A appx/appx_images/nvda_44x44.png (0)
A appx/manifest.xml.subst (47)
A appx/sconscript (97)
M sconstruct (11)
M source/NVDAHelper.py (21)
M source/addonHandler.py (3)
M source/config/__init__.py (19)
M source/core.py (9)
M source/globalCommands.py (2)
M source/gui/__init__.py (13)
M source/gui/addonGui.py (9)
M source/nvda.pyw (16)
M source/updateCheck.py (3)
-- Patch Links --
https://github.com/nvaccess/nvda/pull/7851.patch
https://github.com/nvaccess/nvda/pull/7851.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#7851
|
|
Microsoft is offering a full upgrade for now, at least until it is
viable for a user to run their 3rd party screen reader on Windows 10 S.
I.e. this particular project is meant to prove whether this is possible,
and if not, what needs to change.
The whole point about Windows 10 S is security and stability. Yes
Microsoft might be offering the free upgrade, but the upgrade somewhat
deceives the point of why the institutions are purchasing Windows 10 S
in the first place. It will not be sustainable or equitable in the
long-term to have those with disabilities using a different version of
the Operating System to their peers.
|
|
Hmm, however,S is seemingly so limiting on what it can run, it seems almost
pointless having it in the first place, at least to me.
Its going down the route that eventually leads us to not using a computer
at all as an abacus cannot be hacked. Just my feelings on this mindset. Far
better to teach people about real computers than restrict what they can do
with them.
OK out of the realm of this ticket, but there is a worrying trend toward
seeing access software as a security risk when they should be beefing up
system security in house not stopping it running.
Brian
|
|
@Brian1Gaff commented on Dec 14, 2017, 3:24 AM MST:
I'm asking for a hault of this chain of the thread regarding whether windows ten s is good or not, because it's wandering off topic for this issue tracker, which is not the place for this discussion. |
|
I already said this actually.
Brian
|
Link to issue number:
None
Summary of the issue:
The Windows 10 S Operating System (recently introduced by Microsoft) is a locked-down version of Windows 10, that only allows the user to run apps from the Windows Store.
For NVDA to run on Windows 10 S, it is necessary for NVDA to be packaged as a store app, and submitted to the Windows store.
Description of how this pull request fixes the issue:
This PR allows NVDA to run within a Windows Desktop bridge app container by disabling certain features while in this container, that would either fail or would go against store policy. It also changes the build system to produce two extra files:
These packages do not contain any executables or dlls not needed to run as a store app. E.g. hooking dlls, UIAccess executables etc are specifically excluded from the packages as they would cause validation to fail.
Other than building the packages, the following changes were made to NVDA:
Testing performed:
Known issues with pull request:
There should be absolutely no changes to NVDA when not running in an app container.
However, the following features are unavailable when running as a store app:
It is fair enough to say this is a very cut-down version of NVDA at this point in time. However, one of the primary reasons for this work was to investigate the limitations of running as a store app, and to work with Microsoft to research solutions.
Change log entry:
Changes for developers: