Category: Mobile Devices

Upgrade for home non-traditional ISP

I do have the good fortune of receiving a lot of mobile devices to test and muck around with at work. Around November 2015 I ditched paying the $60/month for Comcast and went with an unlimited plan from my mobile ISP. I now have 17GB of tethering per month (before throttling) and I push it through a Raspberry PI with some nice forwarding rules setup in iptables so it really just acts as the DMZ router.

This has been OK, except when I want to get a lot of work done, I can blow through that quickly. Additionally I do occasionally like having remote access to my stuff, and when I take my phone, then my network goes offline.

So…. now I get to test a Samsung SM-V100T. An Android hotspot from T-Mobile that has a tethering limit > 50GB/month. The unit comes with a battery, some nice additional features if this was someone’s primary mode of Internet connectivity such as a MicroSD card slot and DLNA support. I’m excited that the unit comes with Android and I’m curious about sideloading apps and getting a better UI setup for it. Linux detects it as if it was a Gear S2, so there’s hope for what I can do with it.

I have had a small problem with tethering some of the other test devices previously, and when I tested a Samsung S6 Edge, I found that certain models respond poorly to the amount of power that the Raspberry PI(a) can output from the USB ports.The symptoms specific to tethering is that the device continually knocks itself offline and behaves as if it has been connected to a new device again, and thus prompts for a connection method.

I’ve found previously that using a 2.1 amp charger for a tablet produces sufficient power to work through most of these devices, but the SM-V100T was responding the same way as the previous devices did. I didn’t have a powered USB hub on hand, and I can’t remember the last time I’ve seen a USB charger capable of greater than 2.1A output.

And then I had a great idea… I remembered back in the day external slim CD/DVD drives often connected via two USB cords. One for data and power, and an additional cable for just a bit more juice. Voila! Power supply to the hotspot fixed.

To do:

  • set hotspot to tether by default when plugging into a Pi.
    • Currently the device will default back to MTP, requiring a UI login to change this back to tethering
  • Side load apps
    • I must find out how to sideload the Android agent for MDM control. The SM-V100T represent a threat to the integrity of network behind it since it’s based of out-of-date Android
  • Disable Wi-Fi hotspot
    • If this is used for tethering 100%, no need to have another Wi-Fi signal saturating the channels
      • Maybe the WPS button could be changed for Wi-Fi hotspot on/off?

FIXED: Forwarding All Video Calls

I have had this annoying notification on one of my T-Mobile S7s for the last 3 months, but I haven’t really looked into figuring this out until this weekend.

t-mobile-forwarding-all-video-calls-notification

Attempted all of the following with no success:

  • Basics, rebooting, reseating SIM, etc.
  • Disabling Voice over LTE
  • Carrier shortcodes for disabling all forwarding, requested ISP tech support to remove all forwarding from their side
  • Requested over-the-air SIM refresh from ISP (and rolling my eyes when the tech suggested I factory reset the phone before troubleshooting would continue)
  • Setting SIM in an iOS device and re-running all shortcodes. (Sometimes I really do use iOS)

Upon putting my SIM into another known-good Samsung, and receiving the same annoying notification, it was clear it had nothing to do with my phone.

Took it into the ISP this AM and asked for a SIM swap. Notification now gone.

What’s most interesting about all of this, is it happened after I went on a work trip to a foreign country that is commonly associated with APTs. Potentially just a coincidence, but looking over Google doesn’t reveal any specifics on how this even gets turned on, nor anyone else having better luck figuring it out what caused it.

http://forums.androidcentral.com/samsung-galaxy-note-7/713205-persistent-video-call-forwarding-notification.html

 

AirWatch REST API Script : change Self-Service Portal role for users

Here’s several scripts that may be very helpful for anyone that needs to change the self-service portal role for their users in AirWatch. AirWatch is becoming more robust and mature with every new release, but they still have a long way to go towards overall usability for administrators.


 

#******************************************
### AirWatch API Connection
###
### Template from https://support.air-watch.com/posts/94020718-REST-API-Authentication-in-PowerShell
###
### 2015-11-15 Brian Deyo www.briandeyo.us
#*******************************************

write-output ” __ ___ __ ”
write-output ” /\ | |__) | | /\ | / “ |__| ”
write-output ” /~~\ | | \ |/\| /~~\ | \__, | | ”
write-output ” ”

###############################
###
### BEGIN CONFIGURATION SECTION
###
###############################

###Insert AirWatch API Key here
###Consider it best practice to create an API Key for every account that needs API access. Easier to manage access that way.
###
$APIKEY = “blahblahblahAPIKey”

###Insert AirWatch Application Server URL
###The Server is the “Application Server” component of the AirWatch environment.
###
$AWHost = “xxyyy.awmdm.com/API/v1”

###Pop up to get username and password, and then encodes U & P to string
###
$Credential = Get-Credential
$EncodedUsernamePassword = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($(‘{0}:{1}’ -f $Credential.UserName,$Credential.GetNetworkCredential().Password)))

###Define Headers to send with each API access
###Switch Basic to Directory if using AD integrated account
###
$Headers = @{‘Authorization’ = “Basic $($EncodedUsernamePassword)”;’aw-tenant-code’ = “$APIKey”;’Content-type’ = ‘application/json’}

###Define output folder for Rest Logs when the out-file cmdlet is used
###
$RestLogPath = “\\fileshare\log\location”

###############################
###
### END CONFIGURATION SECTION
###
###############################

#***********************************
# List devices for a specific user
#***********************************
#
#write-output “Type User’s email address”
#$UserEmail = Read-Host
#Invoke-RestMethod -Method Get -Uri https://$AWHost/mdm/devices/search?user=$UserEmail -Headers $Headers

#***********************************
# Set Enrollment User’s SSP Access
#***********************************
#
# Define the JSON in the $body variable. Then the Invoke-RestMethod converts to JSON on the fly
#
#$Role = “SSP ROLE NAME”
#$user = “userID”
#$body = @{
# Role = $Role
# }
#Invoke-RestMethod -Method Post -Uri https://$AWHost/system/users/$user/update -Body (ConvertTo-Json $body) -Headers $Headers

#***********************************
# Get Enrollment User Details
#***********************************
#$user = Read-Host
#$Filename = “UserDetails.txt”
#Invoke-RestMethod -Method Get -Uri https://$AWHost/system/users/$user -Headers $Headers | Out-File -Append $RestLogPath$Filename

#***********************************
# Change a single Users SSP Role
#***********************************

#$User = Read-Host
#$NewRole = “SSP ROLE NAME”
#$body = @{
# Role = $NewRole
# }
#Invoke-RestMethod -Method Post -Uri https://$AWHost/system/users/$User/update -Body (ConvertTo-Json $body) -Headers $Headers

#*************************************************************
# Search for All Users that have specific role and change it
#*************************************************************
#$CurrentRole = “SSP ROLE NAME”
#$Filename = “SSP ROLE NAME.txt”
#$UserList = Invoke-RestMethod -Method Get -Uri https://$AWHost/system/users/search?role=$CurrentRole -Headers $Headers
#$list = $UserList.Users.Id
###Save output of every UserID getting changed
#$list.value | Out-File $RestLogPath$Filename
#
### Loop to change all the roles from the dumped list
#
#$NewRole = “SSP ROLE NAME”
#foreach ($User in $list)
#{
# $UserToUpdate = $User.value
#
# $body = @
# {
# Role = $NewRole
# }
# Invoke-RestMethod -Method Post -Uri https://$AWHost/system/users/$UserToUpdate/update -Body (ConvertTo-Json $body) -Headers $Headers
#}

#************************************
# List Number of Users in Each Role
#************************************
#$RolesToCheck = @(“Basic Access”,”External Access”,”Full Access”)
#Foreach ($Role in $RolesToCheck)
#{
# $Filename = “$Role – TOTALS.txt”
# $UserList = Invoke-RestMethod -Method Get -Uri https://$AWHost/system/users/search?role=$Role -Headers $Headers
# $list = $UserList.Users.Id
# ###Save output of every UserID getting changed
# $UserList | Tee-Object $RestLogPath$Filename
#}