>From the windows certification toolkit test result, we find that there is a section named"Single user registry check" It said:
Warning: The single user registry test detected the following errors: Registry key [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{51071D66-D034-4239-94E0-723FCA10B6FE}] was modified during installation. Registry key [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{51071D66-D034-4239-94E0-723FCA10B6FE}] AuthorizedCDFPrefix=String: was modified during installation. Registry key [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{51071D66-D034-4239-94E0-723FCA10B6FE}] VersionMinor=DWord:4 was modified during installation. Registry key [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{51071D66-D034-4239-94E0-723FCA10B6FE}] WindowsInstaller=DWord:1 was modified during installation. Impact if not fixed: The application is available to all users of the machine. How to fix: In a Per user installation, should not create or modify machine wide registry entries (HKLM). 2012/6/28 Rob Weir <robw...@apache.org> > On Thu, Jun 28, 2012 at 4:02 AM, Liu Da Li <wawal...@gmail.com> wrote: > > For issue 2. > >>> - Issue 2. Test for "Section 4 Apps must adhere to system restart > >> > manager messages" is failed. Bugzilla ID 119947 link: > >> > <https://issues.apache.org/ooo/show_bug.cgi?id=119947> > > It seems that we handle these system restart manager messages in a right > > way. > > Anyone can have a double check on this? > > This would be good to test. A good test case would be to have a new > document, or a document with unsaved changes in it. If we get the > system restart message, what do we do? Windows guidelines are that we > shut down within 30 seconds. So we can't popup a "Do you want to > save?" dialog indefinitely. > > The scenario Microsoft is thinking of is something like this: A user > leaves their machine on at work, and then goes on vacation. A big > security problem is found in Windows and a virus is spreading all over > the world. Microsoft has a fix that they push out to all machines via > their update mechanism. But they cannot apply it on this machine > because they need to force a reboot. But applications are refusing to > shut down cleanly. That's the scenario we should consider. > > I wonder if this should use the existing document restore mechanism > that OpenOffice has to recover from a crash? > > -Rob > > > > > Here is the codes in main\vcl\win\source\window\salframe.cxx. > > > > ...... > > LRESULT CALLBACK SalFrameWndProc( HWND hWnd, UINT nMsg, WPARAM wParam, > > LPARAM lParam, int& rDef ) > > { > > ...... > > case WM_QUERYENDSESSION: > > if( !bInQueryEnd ) > > { > > // handle queryendsession only once > > bInQueryEnd = TRUE; > > nRet = !ImplHandleShutDownMsg( hWnd ); > > rDef = FALSE; > > > > // Issue #16314#: ImplHandleShutDownMsg > causes a PostMessage in > > case of allowing shutdown. > > // This posted message was never > processed and cause Windows XP to > > hang after log off > > // if there are multiple sessions and the > current session wasn't > > the first one started. > > // So if shutdown is allowed we assume > that a post message was > > done and retrieve all > > // messages in the message queue and > dispatch them before we > > return control to the system. > > > > if ( nRet ) > > { > > MSG msg; > > > > while( PeekMessage( &msg, NULL, > 0, 0, PM_REMOVE ) ) > > { > > DispatchMessage( &msg ); > > } > > } > > } > > else > > { > > ImplSalYieldMutexAcquireWithWait(); > > ImplSalYieldMutexRelease(); > > rDef = TRUE; > > } > > break; > > > > case WM_ENDSESSION: > > if( !wParam ) > > bInQueryEnd = FALSE; // no shutdown: > allow query again > > nRet = FALSE; > > rDef = FALSE; > > break; > > ...... > > > > > > > > > > 2012/6/15 Huaidong Qiu <qiuhuaid...@gmail.com> > > > >> About the fonts AOO installed into the system font directory, I did some > >> verification on Windwos XP. > >> > >> 1. AOO archive package packs those font inside the package, you can find > >> them here Basis\share\fonts\truetype. > >> > >> 2. Install AOO, then remove one of the fonts AOO > >> installed, Arimo-Bold.ttf, Arimo-BoldItalic.ttf, Arimo-Italic.ttf, > >> Arimo-Regular.ttf, > >> from the system font directory. Open installed AOO, the font name > >> disappears from the font list of AOO. > >> > >> 3.Copy directory Basis\share\fonts\truetype from archive package to the > >> install directory. Open installed AOO, the font name come back. > >> > >> So I think we can pack the needed fonts into the installer package > >> as archive package did. Then we can safely remove those fonts from the > >> install directory without affect other applications. > >> > >> Any ideas? > >> > >> > >> On Thu, Jun 14, 2012 at 4:06 PM, Lin Yuan <yuanlin....@gmail.com> > wrote: > >> > >> > About issue5 that support multiple user sessions, as tested by Yan Ji > >> on a > >> > Windows 2008 server. When allow one user to remote log in with > multiple > >> > sessions, AOO 3.4 is not stable and will crash after some operations. > >> > > >> > To support multiple sessions for one user, I thinkonly rearchitect > >> single > >> > IPC to TS session managment is not enough. If allow multiple AOO > >> instances > >> > can be run isolated for one user, the data in user directory must be > >> > synchronized correctly for those AOO instances as they all share the > same > >> > user directory. The data may inlucde extensions, .xcu and other > >> > configuration files. So I think the simplest way to be able to > >> cetifiacted > >> > with Windows 8 in this section is do below thing mentioned in > >> Certification > >> > requirements for Windows 8 > >> > > >> > "If an app does not support multiple user sessions or remote access, > it > >> > must clearly state this when launched from this kind of session" > >> > > >> > That is, when AOO launched, check if there is another AOO instance in > a > >> > different TS session but for the same user. If does, popup a warning > >> dialog > >> > and exit. > >> > > >> > > >> > > >> > > >> > 2012/6/12 Liu Da Li <wawal...@gmail.com> > >> > > >> > > I have create five items on Bugzilla to track these issue. > >> > > > >> > > - Issue 1. Test for "Section 3 Apps support Windows security > >> features" > >> > > is failed.Bugzilla ID 119946 link: > >> > > [4]<https://issues.apache.org/ooo/show_bug.cgi?id=119946> > >> > > > >> > > > >> > > - Issue 2. Test for "Section 4 Apps must adhere to system restart > >> > > manager messages" is failed. Bugzilla ID 119947 link: > >> > > [5]<https://issues.apache.org/ooo/show_bug.cgi?id=119947> > >> > > > >> > > > >> > > - Issue 3. Test for "Section 5 Apps must support a clean, > reversible > >> > > installation" is failed. Bugzilla ID 119948 link: > >> > > [6]<https://issues.apache.org/ooo/show_bug.cgi?id=119948> > >> > > > >> > > > >> > > - Issue 4. Test for "Section 6 Apps must digitally sign files and > >> > > drivers" is failed.Bugzilla ID 119949 link: > >> > > [7]<https://issues.apache.org/ooo/show_bug.cgi?id=119949> > >> > > > >> > > > >> > > - Issue 5. Test for "Section 11 Apps must support multi-user > >> sessions" > >> > > is not tested by Windows App Certification Kit.Bugzilla ID 119950 > >> link: > >> > > [8] <https://issues.apache.org/ooo/show_bug.cgi?id=119950> > >> > > > >> > > Anyone please help to check them, confirm them and fix them. > >> > > > >> > > 2012/6/12 XiuLi Xu <susan.dongd...@gmail.com> > >> > > > >> > > > Hi All, > >> > > > > >> > > > I upload the detailed test result and Windows 8 related links in > the > >> > wiki > >> > > > document, Windows App Certification Kit Test Results for Apache > >> > > OpenOffice > >> > > > 3.4< > >> > > > > >> > > > >> > > >> > http://wiki.services.openoffice.org/wiki/Documentation/Windows_App_Certification_Kit_-_Test_Results_for_Apache_OpenOffice_3.4 > >> > > > > > >> > > > > >> > > > > >> > > > On Mon, Jun 11, 2012 at 2:48 PM, Liu Da Li <wawal...@gmail.com> > >> wrote: > >> > > > > >> > > > > There are so many items in the Windows 8 certification list, I > try > >> to > >> > > go > >> > > > > through it and find that there is maybe about 43 TODO items for > us > >> to > >> > > do > >> > > > > the certification. Most of the TODO items are just a > verification > >> > > jobs, > >> > > > > but some code change jobs maybe are need to do for the sections > >> > > 4.1,5.1, > >> > > > > 9.1, 10.2,11.7. > >> > > > > I have try to verify some items, the result be marked at green. > >> > > > > Herbert1 also go through the list, I put his result at the end > of > >> > each > >> > > > > section. > >> > > > > > >> > > > > Items which maybe need to change some codes > >> > > > > ------------------------------------------------ > >> > > > > 4.1 Your app must handle critical shutdowns appropriately > >> > > > > In a critical shutdown, apps that return FALSE to > >> WM_QUERYENDSESSION > >> > > will > >> > > > > be sent WM_ENDSESSION and closed, while those that time out in > >> > response > >> > > > to > >> > > > > WM_QUERYENDSESSION will be terminated. . > >> > > > > 5.1 Your app must properly implement a clean, reversible > >> installation > >> > > > > If the installation fails, the app should be able to roll it > back > >> and > >> > > > > restore the machine to its previous state. > >> > > > > 9.1 Your app must have a manifest that defines execution levels > and > >> > > tells > >> > > > > the operating system what privileges the app requires in order > to > >> run > >> > > > > The app manifest marking only applies to EXEs, not DLLs. This is > >> > > because > >> > > > > UAC does not inspect DLLs during process creation. It is also > worth > >> > > > noting > >> > > > > that UAC rules do not apply to Windows Services. The manifest > can > >> be > >> > > > either > >> > > > > embedded or external. > >> > > > > To create a manifest, create a file with the name > >> > > <app_name>.exe.manifest > >> > > > > and store it in the same directory as the EXE. Note that any > >> external > >> > > > > manifest is ignored if the app has an internal manifest. For > >> example: > >> > > > > <requestedExecutionLevel level=""asInvoker | highestAvailable | > >> > > > > requireAdministrator"" uiAccess=""true|false""/> > >> > > > > 10.2 Your app must avoid starting automatically on startup > >> > > > > For example, your app should not set any of the following; > >> > > > > Registry run keys HKLM and, or HKCU under > >> > > > > Software\Microsoft\Windows\CurrentVersion > >> > > > > Registry run keys HKLM, and or HKCU under > >> > > > > Software\Wow6432Node\Microsoft\windows\CurrentVersion > >> > > > > Start Menu AllPrograms > STARTUP > >> > > > > 11.7 Your app must check other terminal service (TS) sessions > for > >> > > > existing > >> > > > > instances of the app > >> > > > > Note: If an app does not support multiple user sessions or > remote > >> > > access, > >> > > > > it must clearly state this when launched from this kind of > session. > >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > ------------------------------------------------------------------------------------------ > >> > > > > Full TODO items. > >> > > > > > >> > > > > 1. Apps are compatible and resilient > >> > > > > 1.1 Your app must not take a dependency on Windows compatibility > >> > modes, > >> > > > > AppHelp message, and or any other compatibility fixes > >> > > > > TODO 1.1 : Need verification , don't depend. > >> > > > > 1.2 Your app must not take a dependency on the VB6 runtime > >> > > > > TODO 1.2 : Need verification , don't depend. > >> > > > > 1.3 Your app must not load arbitrary DLLs to intercept Win32 API > >> > calls > >> > > > > using HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows > >> > > > > AppInit_dlls. > >> > > > > TODO 1.3 : Need verification , don't load. > >> > > > > Herbert1: Win8 Cert Section 1 : ok > >> > > > > > >> > > > > 2. Apps must adhere to Windows Security Best Practices > >> > > > > 2.1 Your app must use strong and appropriate ACLs to secure > >> > executable > >> > > > > files > >> > > > > TODO 2.1 : Need verification > >> > > > > 2.2 Your app must use strong and appropriate ACLs to secure > >> > directories > >> > > > > TODO 2.2 : Need verification > >> > > > > 2.3 Your app must use strong and appropriate ACLs to secure > >> registry > >> > > keys > >> > > > > TODO 2.3 : Need verification > >> > > > > 2.4 Your app must use strong and appropriate ACLs to secure > >> > directories > >> > > > > that contain objects > >> > > > > TODO 2.4 : Need verification > >> > > > > 2.5 Your app must reduce non-administrator access to services > that > >> > are > >> > > > > vulnerable to tampering > >> > > > > TODO 2.5 : Need verification > >> > > > > 2.6 Your app must prevent services with fast restarts from > >> restarting > >> > > > more > >> > > > > than twice every 24 hours > >> > > > > TODO 2.6 : Need verification > >> > > > > Herbert1: Win8 Cert Section 2 : if the MSI based installer does > it > >> it > >> > > is > >> > > > > fine,we are using nsis-2.46 for building the MSI package but > >> Windows > >> > > > itself > >> > > > > does the installation of the MSI packages > >> > > > > > >> > > > > 3. Apps support Windows security features > >> > > > > 3.1 Your app must not use AllowPartiallyTrustedCallersAttribute > >> > (APTCA) > >> > > > to > >> > > > > ensure secure access to strong-named assemblies > >> > > > > TODO 3.1 : Need verification, > >> > > > > 3.2 Your app must be compiled using the /SafeSEH flag to ensure > >> safe > >> > > > > exceptions handling > >> > > > > TODO 3.2 : Need verification, we use it > >> > > > > 3.3 Your app must be compiled using the /NXCOMPAT flag to > prevent > >> > data > >> > > > > execution > >> > > > > TODO 3.3 : Need verification, we use it > >> > > > > 3.4 Your app must be compiled using the /DYNAMICBASE flag for > >> address > >> > > > space > >> > > > > layout randomization (ASLR) > >> > > > > TODO 3.4 : Need verification, we use it > >> > > > > 3.5 Your app must not Read/Write Shared PE Sections > >> > > > > TODO 3.5 : Need verification, > >> > > > > Herbert1: Win8 Cert Section 3 : we are running with SafeSEH, > >> > NXCOMPAT, > >> > > > > DYNAMICBASE, but the libraries we ship have to be modified to > use > >> > these > >> > > > > flags too,I'm almost certain that we don't use APTCA,I'm not so > >> sure > >> > > > about > >> > > > > the RW PW Sections, but I guess we do not have any. > >> > > > > > >> > > > > 4. Apps must adhere to system restart manager messages > >> > > > > 4.1 Your app must handle critical shutdowns appropriately > >> > > > > TODO 4.1 : Need verification, > >> > > > > 4.2 A GUI app must return TRUE immediately in preparation for a > >> > restart > >> > > > > TODO 4.2 : Need verification, we do > >> > > > > 4.3 Your app must return 0 within 30 seconds and shut down > >> > > > > TODO 4.3 : Need verification,we do > >> > > > > Herbert1: Win8 Cert Section 4 : WM_QUERYENDSESSION needs to be > >> > > > > implemented,these new messages are currently ignored > >> > > > > > >> > > > > 5. Apps must support a clean, reversible installation > >> > > > > 5.1 Your app must properly implement a clean, reversible > >> installation > >> > > > > TODO 5.1 : Need verification, > >> > > > > 5.2 Your app must never force the user to restart the computer > >> > > > immediately > >> > > > > TODO 5.2 : Need verification,we never > >> > > > > 5.3 Your app must never be dependent on 8.3 short file names > (SFN) > >> > > > > TODO 5.3 : Need verification,we never > >> > > > > 5.4 Your app must never block silent install/uninstall > >> > > > > TODO 5.4 : Need verification, > >> > > > > 5.5 Your app installer must create the correct registry entries > to > >> > > allow > >> > > > > successful detection and uninstalls > >> > > > > TODO 5.5 : Need verification, > >> > > > > Herbert1: Win8 Cert Section 5: making sure that the registry > >> entries > >> > > and > >> > > > > files are restored is difficult > >> > > > > > >> > > > > 6. Apps must digitally sign files and drivers > >> > > > > 6.1 All executable files (.exe, .dll, .ocx, .sys, .cpl, .drv, > .scr) > >> > > must > >> > > > be > >> > > > > signed with an Authenticode certificate > >> > > > > TODO 6.1:Need to do digitally sign > >> > > > > Herbert1: Win8 Cert Section 6: Having authentication credentials > >> > would > >> > > be > >> > > > > good even if don't pursue Win8 shop certification > >> > > > > > >> > > > > 7. Apps don’t block installation or app launch based on an > >> operating > >> > > > system > >> > > > > version check > >> > > > > 7.1 Your app must not perform version checks for equality > >> > > > > TODO 7.1 : Need verification, > >> > > > > Herbert1: Win8 Cert Section 7: We are doing win-version checks, > but > >> > I'm > >> > > > > almost certain that it is not a check for equality. Needs to be > >> > checked > >> > > > > though. > >> > > > > > >> > > > > 8. Apps don’t load services or drivers in safe mode > >> > > > > TODO 8 : Need verification, we don't > >> > > > > > >> > > > > 9. Apps must follow User Account Control guidelines > >> > > > > 9.1 Your app must have a manifest that defines execution levels > and > >> > > tells > >> > > > > the operating system what privileges the app requires in order > to > >> run > >> > > > > TODO 9.1 : Need verification, > >> > > > > 9.2 Your app’s main process must be run as a standard user > >> > (asInvoker). > >> > > > > TODO 9.2 : Need verification, > >> > > > > > >> > > > > 10. Apps must install to the correct folders by default > >> > > > > 10.1 Your app must be installed in the Program Files folder by > >> > default > >> > > > > TODO 10.1: Need verification,we do > >> > > > > 10.2 Your app must avoid starting automatically on startup > >> > > > > TODO 10.2: Need verification, the quick start is a issue > >> > > > > 10.3 Your app data, which must be shared among users on the > >> computer, > >> > > > > should be stored within ProgramData > >> > > > > TODO 10.3: Need verification,we do > >> > > > > 10.4 Your app’s data that is exclusive to a specific user and > that > >> is > >> > > not > >> > > > > to be shared with other users of the computer, must be stored in > >> > > > > Users\<username>\AppData > >> > > > > TODO 10.4: Need verification,we do > >> > > > > 10.5 Your app must never write directly to the "Windows" > directory > >> > and > >> > > or > >> > > > > subdirectories > >> > > > > TODO 10.5: Need verification,we never > >> > > > > 10.6 Your app must write user data at first run and not during > the > >> > > > > installation in “per-machine” installations > >> > > > > TODO 10.6: Need verification,we do > >> > > > > > >> > > > > 11. Apps must support multi-user sessions > >> > > > > 11.1 Your app must ensure that when running in multiple sessions > >> > either > >> > > > > locally or remotely, the normal functionality of the app is not > >> > > adversely > >> > > > > affected > >> > > > > TODO 11.1: Need verification, > >> > > > > 11.2 Your app’s settings and data files must not persist across > >> users > >> > > > > TODO 11.2: Need verification, > >> > > > > 11.3 A user’s privacy and preferences must be isolated to the > >> user’s > >> > > > > session > >> > > > > TODO 11.3: Need verification, > >> > > > > 11.4 Your app’s instances must be isolated from each other > >> > > > > TODO 11.4: Need verification, > >> > > > > 11.5 Apps that are installed for multiple users must store data > in > >> > the > >> > > > > correct folder(s) and registry locations > >> > > > > Refer to the UAC requirements. > >> > > > > TODO 11.5: Need verification, > >> > > > > 11.6 User apps must be able to run in multiple user sessions > (Fast > >> > User > >> > > > > Switching) for both local and remote access > >> > > > > TODO 11.6: Need verification, > >> > > > > 11.7 Your app must check other terminal service (TS) sessions > for > >> > > > existing > >> > > > > instances of the app > >> > > > > TODO 11.7: Need verification, > >> > > > > Herbert1: Win8 Cert Section 11.7: we need to rearchitect our > IPC to > >> > TS > >> > > > > session management > >> > > > > > >> > > > > 12. Apps must support x64 versions of Windows > >> > > > > 12.1 Your app must natively support 64-bit or, at a minimum, > 32-bit > >> > > > > Windows-based apps must run seamlessly on 64-bit systems to > >> maintain > >> > > > > compatibility with 64-bit versions of Windows > >> > > > > TODO 12.1: Need verification, AOO can be run on 64-bit system > >> > > > > 12.2 Your app and its installers must not contain any 16-bit > code > >> or > >> > > rely > >> > > > > on any 16-bit component > >> > > > > TODO 12.2: Need verification, AOO not contain 16-bit code > >> > > > > 12.3 Your app’s setup must detect and install the proper drivers > >> and > >> > > > > components for the 64-bit architecture > >> > > > > TODO 12.3: Need verification, > >> > > > > > >> > > > > > >> > > > > > >> > > > > 2012/6/7 Rob Weir <robw...@apache.org> > >> > > > > > >> > > > > > I installed the Windows 8 Tech Preview (32-bit) today on a > >> virtual > >> > > > > > server. After a few minutes to figure out the new platform > UI I > >> > > > > > installed AOO 3.4. Install went without problems and it > appears > >> to > >> > > > > > run fine. > >> > > > > > > >> > > > > > Of course, there is more that we could do to be a > well-integrated > >> > > > > > Windows desktop application. The best practices are outlined > >> here: > >> > > > > > http://msdn.microsoft.com/library/windows/desktop/hh749939 > >> > > > > > > >> > > > > > A lot of this is goodness that would help users on Windows 7 > and > >> > > > > > earlier versions as well. For example, the code signing > reduces > >> > the > >> > > > > > risk of tampering or corrupt files. It also reduces false > >> > complaints > >> > > > > > by some anti-virus products. The recommended compiler options > >> help > >> > > > > > reduce the explotability of security vulnerabilities, > especially > >> of > >> > > > > > the kind products run into reading binary file formats. More > >> info > >> > on > >> > > > > > these options are here: > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > http://blogs.msdn.com/b/vcblog/archive/2009/05/21/dynamicbase-and-nxcompat.aspx > >> > > > > > > >> > > > > > Did OpenOffice.org ever try for logo certification from > Microsoft > >> > > > > > before? If so, what was the experience? > >> > > > > > > >> > > > > > I think it might be worth trying for this with AOO, It would > >> takes > >> > > > > > some work, but in the end we would have better platform > >> > integration, > >> > > > > > and a better user and admin experience. > >> > > > > > > >> > > > > > -Rob > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> >