AWS Device Farm - Disable tutorials on devices - amazon-web-services

I am doing automated tests [Android / Appium Java JUnit] with the AWS Device Farm service, but they are interrupted by the use tutorials that appear on the devices, for example, the tutorial of how to use the camera. I want to know if there is a way to disable the tutorials of the use of the device. Thanks.

I work for the AWS Device Farm team.
We detected and root caused this issue where a one-time tutorial popup appears on some phone's camera apps. We've corrected it, so feel free to try again and let us know if this problem is still affecting you.

Looks like there is also a script you can run from this AWS forum post
https://forums.aws.amazon.com/thread.jspa?threadID=294719
Hi,
I'm so sorry this keeps happening to you. We do currently only have the dismissal running on some devices like the Samsung S9, and are going to be enabling it for other devices soon, in the coming weeks. What I can do now is provide you a script to verify that theyre dismissed yourself at the beginning of your test. If you're using "custom environment mode", add the following 2 lines to the pre-test section of your test spec file:
curl https://s3-us-west-2.amazonaws.com/aws-devicefarm-support/chrome_initialization_and_popup_detection.py -o chrome_initialization_and_popup_detection.py
- python chrome_initialization_and_popup_detection.py -v --retries 2 --output-dir $DEVICEFARM_TEST_PACKAGE_PATH/popup_dismissal
This will run our popup dismissal script in your own code to verify that any device you run on gets all popups dismissed. It shouldn't be necessary for some devices like the S9, but just in case any do happen to creep up, this will dismiss them for you. I'll also double-check on our end why some popups like the S9 popup aren't getting dismissed properly.

Related

How do I send a command to Google Home with an ESP8266?

I have been looking for a way to send commands to my google home by pressing a button connected to an ESP8266. What I am trying to do is have my Google home turn off / on my Smart lights by pressing a button rather than saying the command.
I have some generic Wi-Fi controlled smart lights that are connected to my Google Home and I control them with the basic on/off commands (turn them on I say "OK Google, turn on my lights." and for off "OK Google, turn off my lights."). I would like to be able to press a physical button and have the ESP8266 push the command to my Google Home and have it execute it. Essentially a light switch that uses code to toggle the lights on and off rather than cutting the power, or go into an app, or say a verbal command.
I would prefer it not to use IFTTT but if that is necessary I will oblige to doing so. I have seen countless people send commands TO an ESP8266 FROM a google home, but I have never seen it accomplish way around besides 1 GitHub post showing that you can send voice commands using his Library called Google Home Notifier. While this does work for having my Google say something I don't know how (if even possible) to use it to have Google receive and execute a command.
As I stated earlier I don't know if this is even possible. I believe there is some way to do this I just don't know-how. I would really appreciate any help that can be given or a point in the right direction on how to accomplish this.
Why do you even want to use your Google Home ?
What if you connect your ESP8266 to home-assistant, and trigger an automation when the button is pressed ? This automation could turn off the lights, or call a Google API if that's what you want
N.B: I guessed you have a home assistant setup because of the tags in your question. If that's not the case, please edit

How exactly does the WiX 'Service Install' work internally?

I have a problem with a web service that is installed and started with a .msi that is created with the WiX toolset.
The service can be installed and started on all the machines I tested so far (shown as running in the Services Manager) but on some machines it is not reachable (for example via a browser) and not shown in the list of listening ports on that machine (displayed with 'netstat -a').
I am trying to figure out what's going wrong but I am not really familiar with web service development and configuration. It's a third party service, thus I don't know how it works internally.
A good starting point for me would be to find out, what exactly happens when a service is installed and started during the execution of the .msi-file.
Maybe I could try to tackle the problem on a lower level then.
Below is my code in the ServiceInstall-Element:
<ServiceInstall
Id="ServiceID"
Type="ownProcess"
Vital="yes"
Name="ServiceName"
DisplayName="ServiceDisplayName"
Description="Lorem Ipsum"
Start="auto"
Account="LocalSystem"
ErrorControl="normal"
Interactive="no"
Arguments="action=run">
</ServiceInstall>
The argument is important - without it, the service won't start or run.
Maybe someone else encounterd the same or a similar problem and can help me out.
Thanks already in advance - each hint is appreciated.
EDIT I (15.04.18):
As it might be a problem with the specific service, I will add some further information here:
It's a third party software called CryptoLicensing:
http://www.ssware.com/cryptolicensing/cryptolicensing_net.htm
Part of this software is that specific program, that serves as a License Server and does the license registration, for example in a customer's network.
The service can be run as a Windows application or installed and run as a Windows service. In both cases it should be listening on a (pre-)specified port on the installed machine.
Whenever I start the .exe as an application, everything works as intended. The service is reachable (for example with the browser) and can be accessed from other machines in the network.
When the .exe is installed and started as a service, it does not work as intended on every machine. For example if I install and start the service on my laptop, it is shown as running in the Services Manager, but is not reachable on its assigned URL (not even on the localhost) nor is the specific port displayed in the active listening ports, for example with 'netstat -a'.
The service itself starts without any error messages and does not log any errors or exceptions as it seems to be running without any problems.
I contacted the vendor, but sometimes he doesn't reply quickly and he is not very specific in his replies.
Before asking the question I assumed that it was a problem with the Windows user rights and the WiX installer but during the discussion here I had the feeling that it might a problem with the service itself.
I hope this 'new' piece of information helps in isolating and location the problem.
Thanks to everyone who helped so far!
Hopefully not stating the obvious here, but WiX doesn't do much except populate the ServiceInstall table in the MSI file, so this is about why Windows Installer won't start the service. ServiceInstall table:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa371637(v=vs.85).aspx
Also, this isn't really about ServiceInstall - it's probably about the ServiceControl element in your WiX source, but it's not clear whether that's how you're starting it or if you're starting it manually later on. That does make a difference. What is the error message and where are you getting it, and is it a 1920 or 1921 error (in the context of ServiceControl).
The main reason a service will start on one system but not another is missing dependencies. If your service is C++ based (the post doesn't say) then there are probably dependencies on C runtimes, UCRT runtimes, MFC or ATL runtimes and so on.
First: are you sure this service is intended to run as LocalSystem? (MSDN, SO).
Second: did you check the event logs in detail for anything obvious? If the service is good you should find a hint at least. Something to start with. I find that I sometimes miss the actual logs in the event viewer because it is so "crowded". My take on it: empty the log and stop and restart the service.
Something locking / blocking: If the service installs and runs OK I would suspect other factors such as firewalls (hardware & software), security software in general (anti-virus, malware scanners), network configuration issues (proxies, WINS, DNS and all the complexities involved in networking). Is the service trying to reach an UNC path?
Diverse Machines: What are the target machines? Are they virtual, are they physical, are they test machines, are they operative SOE machines in corporate networks? Are they the same OS version and edition?
Further Ideas: It is not quite related, but maybe skim this list of suggestions for debugging from another answer (I am not sure why it was down-voted, I think it is an OK list to inspire debugging ideas): Windows Application Startup Error Exception code: 0xe0434352 (maybe just skim the bolded words for ideas - Recommended).
sc.exe: And finally, perhaps check the sc.exe tool (Service Control) and see if it can provide you with some useful information for debugging.
sc.exe in the context of killing hung services (sample use).
sc.exe from MSDN
Some further links:
Windows Services Frequently Asked Questions (FAQ). Content seems to be up to date - at face value at least. These guys claim to be experts on services. I have no idea who they are.
Essential Tools for Windows Services: SC.EXE
Run Service Control (sc.exe) command on secure port
After almost 20 months we finally (and accidentally) found a solution to the problem! For the few machines, on which the service did not run properly, setting the NoInteractiveServices value in the registry to 0 did the trick. A value of 1 (which is default) means that no service is allowed to run interactively, regardless of whether it has the SERVICE_INTERACTIVE_PROCESS property. More information on Interactive Services.
I am not completely satisfied with the solution, because on all the other machines NoInteractiveServices is set to 1 AND the service runs properly anyway. However, on the machines where the service did not run interactively this solution worked for us. Thus I will accept this as an answer.
If anyone has more information on this issue and can explain why this works, feel free to
add them - I would be very interested!

Calabash how to speed up execution time

I have a Android device connected to my PC.
Running a calabash test I use the following command:
calabash-android run <NAME>.apk features/<NAME>.feature
Now before running a feature Calabash always uploads the application again witch takes time.
How can I disable this?
Any help would be appreciated!
Thank you!
You can control the reinstallation of the app using the hooks file. This contains the cucumber hooks for before and after scenario. If you didn't make the hooks file that you are running then it's probably one from a sample project.
The bit you're looking for is the 'reinstall_apps' command. If you remove it completely then your app won't ever be reinstalled, which can be a bad thing as it's sometimes necessary to reset the app completely. The way I handle it is to tag the features where I do want the app reinstalled with #reinstall_app and then
Before do |scenario|
puts "Starting scenario - #{scenario.name}"
reinstall_app if scenario.source_tag_names.include?('#reinstall_app'))
...
end

Unable to debug glassware- Google glass

I am unable to debug glassware.I have tried the solution in this thread How to debug Google Glass GDK application?
This application uses voice commands, It gets installed but doesn't start the default activity.I am unable to find any classes to select in the run configurations.But messages are logged in Log cat.
Update:By activating DDMS I am able to debug.. But its strange that after few times of debugging, app stops working .. I dont get any exceptions logged.
You generally don't setup a default activity for Glass since there's not a way to "run" a specific application. You will likely want to set up a voice command and add a listener for that voice command. This is how your application will launch.
Even with no exceptions, could you post your LogCat output? This might help to shed a little more light on the issues you're having. I've been able to debug applications without any issues, so I know it's possible.

Service Control Security Issues in XPCOM

I'm am developing a Firefox extension which interfaces with an underlying Windows service (which I have already made).
During the development so far I encountered one bug in the installer program (which installs the FF extension AND the service). This was due to the security model on Vista requiring elevated privileges to be able to install and start the service. I adjusted the installer and now it installs fine (just with additional Vista'esque warning dialogs being displayed to end-users - which I can live with !)
I am now in the process of developing an XPCOM component that will install along with the XUL stuff I have already made. There will be a XUL javascript interface to the XPCOM which will try to do things like stop and start the service (e.g when user-configuration data is changed).
My question: Since FF will normally be run under a user account, will I run into any difficulties on Vista or other Windows flavors trying to start or stop my own service via XPCOM?
(When users run the installer I don't mind security dialogs popping up in Vista. But I certainly don't want this to happen whenever they try to change their info in the XUL interface.)
What is the correct way to go about this?
Yes, if your service is running as an Administrator then the Firefox process, running as a normal user will not be able to start or stop it. However, it appears that you can use the "sc" command to set access controls on your service from your installer, which means you can allow non-admin users to start and stop your service.
You'll need to use "sc sdset", which is documented (lightly) here:
http://technet.microsoft.com/en-us/library/cc742037%28WS.10%29.aspx
However, to use that, you'll need to read up on the "Security Descriptor Definition Language", which looks kind of complicated:
http://msdn.microsoft.com/en-us/library/aa379567%28VS.85%29.aspx
This blog entry appears to have some human-readable information on it:
http://blogs.dirteam.com/blogs/jorge/archive/2008/03/26/parsing-sddl-strings.aspx