Saturday, October 31, 2015

Microsoft Channel9 Addon for Kodi

To add to the my list of hobby projects, I created a fork of an addon for Kodi that provides browsing of videos on Microsoft Channel9. This was my first attempt at a Kodi addon, and really my first time working with writing python. I started out by just reading over the original code and tweaking it a bit because some things were not working. Then I started following the pattern that existed and implementing new features, like being able to browse Channel9 authors, and Channel9 events.

Once I got these features in place, I started doing some real refactoring of the original code base. There was a ton of code that was duplicated in multiple places. I spent a few hours of the day really rewriting the entire addon. As the project stands right now, it is basically a complete rewrite of the original addon.

The project is on Github and building on AppVeyor.

Download the latest Release

Sunday, October 4, 2015

Simplify standing up an IE Virtual Machine with PSIEVM

Over the weekend I was bored and decided to start a project to automate the process of standing up an IE VM with powershell. I would like to introduce PSIEVM. A powershell module that allows you to stand up an IE VM in VirtualBox (other hosts coming in the future) in one line.

PS> Get-IEVM –OS Win7 –IEVersion 9

That is the simplest form of the command.

Installation

To install, download from the github project releases page and extract to $env:USERPROFILE\WindowsPowerShell\Modules. Then to use it just import it

PS> Import-Module psievm
PS> Get-IEVM –OS Win7 –IEVersion 10 –AlternateVMLocation "G:\VMs\" –VMRootPath "G:\VMs\"

 

The parameters for Get-IEVM:

Name

Required

Type

Default

OS

YES

String

[Empty]

The OS to use:

  • WinXP, WindowsXP, Windows XP, XP
  • WinVista, WindowsVista, Windows Vista, Vista
  • Win7, Windows7, Windows 7, 7
  • Win8, Windows8, Windows 8, 8
  • Win8.1, Windows8.1, Windows 8.1, 8.1
  • Win10, Windows10, Windows 10, 10

IEVersion

YES

String

[Empty]

The version of IE. This is dependant on the version of Windows (See the table below).

  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Edge

Shares

NO

String[]

[Empty]

These are the paths to add as a share in the VM through the VMHost. May not be fully supported in all VMHosts.

AlternateVMLocation

NO

String

[Empty]

By default the VM images will be downloaded from Microsoft, but if you have the images downloaded already, you can use this to tell the script where to get them. This can be a URL, Network Share, or a local path. The images need to follow the following pattern:

IE: IE<IEVersion>.Win<OSVersion>.For.Windows.<VMHost>.zip
Edge: Microsoft%20Edge.Win10.For.Windows.<VMHost>.zip

VMHost

NO

String

VirtualBox

The VM Host to use. Only VirtualBox is currently supported but here is the full list that will be supported (and maybe others).

  • VirtualBox
  • HyperV
  • Vagrent
  • VPC
  • VMWare

IgnoreInvalidMD5

NO

Boolean

$False

After the zip image is downloaded, the file MD5 hash is validated. If you use your own images, you will want to set this to $True.

VMRootPath

NO

String

$PWD

This is the path to download the zip image to and create the VM image folder where the VM will reside. By default it will use the Current Working Directory.

OS / IEVersion

This is the version of the OS that you want hosted and the version of IE you want with it. Here are the supported values:

 

IE 6

IE 7

IE 8

IE 9

IE 10

IE 11

MS Edge

Requires 64-bit Emulation

XP

X

 

X

 

 

 

 

 

Vista

 

X

 

 

 

 

 

 

Win7

 

 

X

X

X

X

 

 

Win8

 

 

 

 

X

 

 

 

Win8.1

 

 

 

 

 

X

 

X

Win10

 

 

 

 

 

 

X

X

Download PSIEVM

Friday, September 18, 2015

Droid Explorer 0.9.0.4 Released

This is a pretty big release for being a maintenance release. There are some bug fixes and a couple new features.

New Features:

Sqlite files are now edited using Sqlite Browser. This tool is far more stable, and advanced than the tool that was included before in Droid Explorer. The way this tool works, the database that you want to query/modify will be copied to your PC. You can query or modify the data. Once you close the Sqlite Browser, it will ask you if you want to push the changes back to the device.

changes

ScreenCast is now called Screen Monitor and now uses a fork of Android Screen Monitor. The fork just removes the need to have the user select the device, since Droid Explorer already knows the device.

monitor

Screen Capture: This allow you to record your device screen for up to 3 minutes.

capture

Rotation is done when you copy the video to the PC. This uses FFMpeg to do the rotation.

Sample video:

Changelog:

  • Fixed the install apk shortcut to default to install. [workitem:17512]
  • Added screen capture functionality. The Plugin will show up if the connected device supports screen capture. [workitem:17417]
  • Tweaked the SaveFileDialog, OpenFileDialog, & FileDialog to better support an 'initial directory'.
  • Tweaked the way the plugin toolstrips are created to hopefully support reloading when connecting to another device. 
  • Fixed launching screenshot from the shortcut or jumplist item. [workitem:17416]
  • Replaced the JNLP with a more active developed androidscreencast and launch a jar file directly.
  • Changed the window of the ScreenRecorder to be fixed.
  • Updated the InstallDialog to make use of the PluginHost which provides device and other information.
  • Fixed the regex for checking if an app was installed successfully and fixed the regex for getting the permissions
  • Fixed the device backup so it launches correctly from the shortcut.
  • Added Sqlite Browser to replace the feature lacking sqlite explorer that was part of this project. See http://sqlitebrowser.org/ for info on Sqlite Browser.
  • TransferDialog now usable by plugins. [workitem:17521]
  • Consolidation of some string resources in to the Global App Resources
  • Default the file name when saving a screenshot to be 'screenshot-{yyyy-MM-dd-hhmmss}.png' [workitem:17516]
  • All PluginForms now require IPluginHost to be passed in. 
  • Updated image resources for the screenshot plugin
  • added toolbar item to screenshot to "edit in default application"
  • removed SqliteEditForm since it isn't used any more.
  • fixed the saving size of the screenshot. It will save as the original source size [workitem:17517]
  • Added ability to rotate screen capture video 90/180/270 degrees when copying to pc. uses ffmpeg to rotate video. [workitem:17519]
  • Added option to delete capture file after copy to pc [workitem:17525]
  • set a default filename on '/sdcard/' for screen capture [workitem:17523]
  • Changed when disconnected from device that the 'connect to device' button is not disabled. [workitem:17528]
  • Fixed crash when the monitor service is not running and you disconnect from the device because the ADB daemon shuts down and status cannot be retrieved.
  • Added link to WiFi ADB app on the remote connect dialog. This will help people enable wifi adb. [workitem:17533]
  • Added method to IPlugin interface to initialize the plugin. This can be used to set up files on the device before the plugin executes.
  • Removed androidscreencast, switched to using android screen monitor fork (https://github.com/camalot/android-screen-monitor). The fork allows the device ID to be passed as an argument. This way the user does not have to select the device again.
  • Changed the call to launch the jar for screen monitor to call "java.exe", before it was just "java" and that was causing issues. [workitem:17531]
  • Added more logging during initialization to help with debugging start up issues. [workitem:17527]
  • Set the toolstrip renderer on screenshot plugin to be the same that is used elsewhere.
  • Added functions for Forward & Reverse to be used with the port manager
  • Added option to restart ADB server on the connection dialog

 

 

32bit-128  64bit-128

Sunday, September 13, 2015

New feature coming to Droid Explorer

I want to give a sneak peak of a feature in the upcoming release of Droid Explorer called Device Screen Capture. On devices that support it, you will be able to record screen activity for up to 3 minutes.

If you choose to copy to your computer after capture, you will be able to also apply rotation to the video.

 

Here is a sample video with the following settings:

  • Length: 20 seconds
  • Bitrate: 4Mbps
  • Size: 1440x2560
  • Rotate: 90 degrees

Tuesday, September 8, 2015

Droid Explorer 0.9.0.3 Released

There is a new release of Droid Explorer that is now available for download. This release is mainly some bug fixes. The most important is fixing support for the changes to ADB where the feature ‘status-window’ was removed. Droid Explorer used this feature to monitor the status of the connected devices. The removal of this required a little reworking of the monitoring, but at this point I think I am happy with the new functionality.

Full change log is available on Droid Explorer Site:

  • updated the location of the device images to use the program data directory. This is mainly for the service because a normal user, on windows 10, will not have access to read the icon file.
  • updated to use Visual Studio 2015
  • updated to .net 4.5.2
  • updated to use Wix 3.10 - it will try to use the installed version of wix, if it has created the WIX environment variable
  • changed the position of the Ask for Help button on windows 8+ devices to account for the larger buttons (on windows 10)
  • fixed when looking for the build tools versions it will only take directories in to account that match a version string regex.
  • Reworked the 'status-window' to use existing functionality in ADB so a different binary does not have to be distributed with Droid Explorer.
  • Updated some of the plugins that launch tools. It now checks for the tools, if it can't find them, they will not show up.
  • Updated the application manifest files to support current features in windows.
  • Added check to see if user (or user policy) has recent document tracking disabled. If it is, do not attempt to create jump lists.

 

32bit-128  64bit-128

Microsoft Channel9 Addon for Kodi

To add to the my list of hobby projects, I created a fork of an addon for Kodi that provides browsing of videos on Microsoft Channel9. This was my first attempt at a Kodi addon, and really my first time working with writing python. I started out by just reading over the original code and tweaking it a bit because some things were not working. Then I started following the pattern that existed and implementing new features, like being able to browse Channel9 authors, and Channel9 events.

Once I got these features in place, I started doing some real refactoring of the original code base. There was a ton of code that was duplicated in multiple places. I spent a few hours of the day really rewriting the entire addon. As the project stands right now, it is basically a complete rewrite of the original addon.

The project is on Github and building on AppVeyor.

Download the latest Release

Simplify standing up an IE Virtual Machine with PSIEVM

Over the weekend I was bored and decided to start a project to automate the process of standing up an IE VM with powershell. I would like to introduce PSIEVM. A powershell module that allows you to stand up an IE VM in VirtualBox (other hosts coming in the future) in one line.

PS> Get-IEVM –OS Win7 –IEVersion 9

That is the simplest form of the command.

Installation

To install, download from the github project releases page and extract to $env:USERPROFILE\WindowsPowerShell\Modules. Then to use it just import it

PS> Import-Module psievm
PS> Get-IEVM –OS Win7 –IEVersion 10 –AlternateVMLocation "G:\VMs\" –VMRootPath "G:\VMs\"

 

The parameters for Get-IEVM:

Name

Required

Type

Default

OS

YES

String

[Empty]

The OS to use:

  • WinXP, WindowsXP, Windows XP, XP
  • WinVista, WindowsVista, Windows Vista, Vista
  • Win7, Windows7, Windows 7, 7
  • Win8, Windows8, Windows 8, 8
  • Win8.1, Windows8.1, Windows 8.1, 8.1
  • Win10, Windows10, Windows 10, 10

IEVersion

YES

String

[Empty]

The version of IE. This is dependant on the version of Windows (See the table below).

  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Edge

Shares

NO

String[]

[Empty]

These are the paths to add as a share in the VM through the VMHost. May not be fully supported in all VMHosts.

AlternateVMLocation

NO

String

[Empty]

By default the VM images will be downloaded from Microsoft, but if you have the images downloaded already, you can use this to tell the script where to get them. This can be a URL, Network Share, or a local path. The images need to follow the following pattern:

IE: IE<IEVersion>.Win<OSVersion>.For.Windows.<VMHost>.zip
Edge: Microsoft%20Edge.Win10.For.Windows.<VMHost>.zip

VMHost

NO

String

VirtualBox

The VM Host to use. Only VirtualBox is currently supported but here is the full list that will be supported (and maybe others).

  • VirtualBox
  • HyperV
  • Vagrent
  • VPC
  • VMWare

IgnoreInvalidMD5

NO

Boolean

$False

After the zip image is downloaded, the file MD5 hash is validated. If you use your own images, you will want to set this to $True.

VMRootPath

NO

String

$PWD

This is the path to download the zip image to and create the VM image folder where the VM will reside. By default it will use the Current Working Directory.

OS / IEVersion

This is the version of the OS that you want hosted and the version of IE you want with it. Here are the supported values:

 

IE 6

IE 7

IE 8

IE 9

IE 10

IE 11

MS Edge

Requires 64-bit Emulation

XP

X

 

X

 

 

 

 

 

Vista

 

X

 

 

 

 

 

 

Win7

 

 

X

X

X

X

 

 

Win8

 

 

 

 

X

 

 

 

Win8.1

 

 

 

 

 

X

 

X

Win10

 

 

 

 

 

 

X

X

Download PSIEVM

Droid Explorer 0.9.0.4 Released

This is a pretty big release for being a maintenance release. There are some bug fixes and a couple new features.

New Features:

Sqlite files are now edited using Sqlite Browser. This tool is far more stable, and advanced than the tool that was included before in Droid Explorer. The way this tool works, the database that you want to query/modify will be copied to your PC. You can query or modify the data. Once you close the Sqlite Browser, it will ask you if you want to push the changes back to the device.

changes

ScreenCast is now called Screen Monitor and now uses a fork of Android Screen Monitor. The fork just removes the need to have the user select the device, since Droid Explorer already knows the device.

monitor

Screen Capture: This allow you to record your device screen for up to 3 minutes.

capture

Rotation is done when you copy the video to the PC. This uses FFMpeg to do the rotation.

Sample video:

Changelog:

  • Fixed the install apk shortcut to default to install. [workitem:17512]
  • Added screen capture functionality. The Plugin will show up if the connected device supports screen capture. [workitem:17417]
  • Tweaked the SaveFileDialog, OpenFileDialog, & FileDialog to better support an 'initial directory'.
  • Tweaked the way the plugin toolstrips are created to hopefully support reloading when connecting to another device. 
  • Fixed launching screenshot from the shortcut or jumplist item. [workitem:17416]
  • Replaced the JNLP with a more active developed androidscreencast and launch a jar file directly.
  • Changed the window of the ScreenRecorder to be fixed.
  • Updated the InstallDialog to make use of the PluginHost which provides device and other information.
  • Fixed the regex for checking if an app was installed successfully and fixed the regex for getting the permissions
  • Fixed the device backup so it launches correctly from the shortcut.
  • Added Sqlite Browser to replace the feature lacking sqlite explorer that was part of this project. See http://sqlitebrowser.org/ for info on Sqlite Browser.
  • TransferDialog now usable by plugins. [workitem:17521]
  • Consolidation of some string resources in to the Global App Resources
  • Default the file name when saving a screenshot to be 'screenshot-{yyyy-MM-dd-hhmmss}.png' [workitem:17516]
  • All PluginForms now require IPluginHost to be passed in. 
  • Updated image resources for the screenshot plugin
  • added toolbar item to screenshot to "edit in default application"
  • removed SqliteEditForm since it isn't used any more.
  • fixed the saving size of the screenshot. It will save as the original source size [workitem:17517]
  • Added ability to rotate screen capture video 90/180/270 degrees when copying to pc. uses ffmpeg to rotate video. [workitem:17519]
  • Added option to delete capture file after copy to pc [workitem:17525]
  • set a default filename on '/sdcard/' for screen capture [workitem:17523]
  • Changed when disconnected from device that the 'connect to device' button is not disabled. [workitem:17528]
  • Fixed crash when the monitor service is not running and you disconnect from the device because the ADB daemon shuts down and status cannot be retrieved.
  • Added link to WiFi ADB app on the remote connect dialog. This will help people enable wifi adb. [workitem:17533]
  • Added method to IPlugin interface to initialize the plugin. This can be used to set up files on the device before the plugin executes.
  • Removed androidscreencast, switched to using android screen monitor fork (https://github.com/camalot/android-screen-monitor). The fork allows the device ID to be passed as an argument. This way the user does not have to select the device again.
  • Changed the call to launch the jar for screen monitor to call "java.exe", before it was just "java" and that was causing issues. [workitem:17531]
  • Added more logging during initialization to help with debugging start up issues. [workitem:17527]
  • Set the toolstrip renderer on screenshot plugin to be the same that is used elsewhere.
  • Added functions for Forward & Reverse to be used with the port manager
  • Added option to restart ADB server on the connection dialog

 

 

32bit-128  64bit-128

New feature coming to Droid Explorer

I want to give a sneak peak of a feature in the upcoming release of Droid Explorer called Device Screen Capture. On devices that support it, you will be able to record screen activity for up to 3 minutes.

If you choose to copy to your computer after capture, you will be able to also apply rotation to the video.

 

Here is a sample video with the following settings:

  • Length: 20 seconds
  • Bitrate: 4Mbps
  • Size: 1440x2560
  • Rotate: 90 degrees

Droid Explorer 0.9.0.3 Released

There is a new release of Droid Explorer that is now available for download. This release is mainly some bug fixes. The most important is fixing support for the changes to ADB where the feature ‘status-window’ was removed. Droid Explorer used this feature to monitor the status of the connected devices. The removal of this required a little reworking of the monitoring, but at this point I think I am happy with the new functionality.

Full change log is available on Droid Explorer Site:

  • updated the location of the device images to use the program data directory. This is mainly for the service because a normal user, on windows 10, will not have access to read the icon file.
  • updated to use Visual Studio 2015
  • updated to .net 4.5.2
  • updated to use Wix 3.10 - it will try to use the installed version of wix, if it has created the WIX environment variable
  • changed the position of the Ask for Help button on windows 8+ devices to account for the larger buttons (on windows 10)
  • fixed when looking for the build tools versions it will only take directories in to account that match a version string regex.
  • Reworked the 'status-window' to use existing functionality in ADB so a different binary does not have to be distributed with Droid Explorer.
  • Updated some of the plugins that launch tools. It now checks for the tools, if it can't find them, they will not show up.
  • Updated the application manifest files to support current features in windows.
  • Added check to see if user (or user policy) has recent document tracking disabled. If it is, do not attempt to create jump lists.

 

32bit-128  64bit-128