├── .gitignore
├── AndroidTool.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── AndroidTool.xccheckout
│ │ └── AndroidTool.xcscmblueprint
└── xcuserdata
│ └── mortenjust.xcuserdatad
│ ├── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes
│ ├── AndroidTool.xcscheme
│ └── xcschememanagement.plist
├── AndroidTool
├── .DS_Store
├── Apk.swift
├── ApkHandler.swift
├── AppDelegate.swift
├── Base.lproj
│ └── MainMenu.xib
├── C.swift
├── CameraButton.swift
├── Constants.swift
├── Device.swift
├── DeviceDiscoverer.swift
├── DevicePickerViewController.swift
├── DevicePickerViewController.xib
├── DeviceViewController.swift
├── DeviceViewController.xib
├── DropPassThroughImageView.swift
├── DropReceiverView.swift
├── IOSDeviceHelper.swift
├── Images.xcassets
│ ├── .DS_Store
│ ├── ApkIcon.iconset
│ │ ├── icon_128x128.png
│ │ ├── icon_128x128@2x.png
│ │ ├── icon_16x16.png
│ │ ├── icon_16x16@2x.png
│ │ ├── icon_256x256.png
│ │ ├── icon_256x256@2x.png
│ │ ├── icon_32x32.png
│ │ ├── icon_32x32@2x.png
│ │ ├── icon_512x512.png
│ │ └── icon_512x512@2x.png
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── androidToolIcon1024.png
│ │ ├── androidToolIcon128.png
│ │ ├── androidToolIcon16.png
│ │ ├── androidToolIcon256-1.png
│ │ ├── androidToolIcon256.png
│ │ ├── androidToolIcon32-1.png
│ │ ├── androidToolIcon32.png
│ │ ├── androidToolIcon512-1.png
│ │ ├── androidToolIcon512.png
│ │ └── androidToolIcon64.png
│ ├── Contents.json
│ ├── PhoneBlack.imageset
│ │ ├── Contents.json
│ │ ├── PhoneBlack.png
│ │ ├── PhoneBlack@2x.png
│ │ └── PhoneBlack@3x.png
│ ├── WatchBlack.imageset
│ │ ├── Contents.json
│ │ ├── WatchBlack.png
│ │ ├── WatchBlack@2x.png
│ │ └── WatchBlack@3x.png
│ ├── cameraBlack.imageset
│ │ ├── Contents.json
│ │ ├── cameraBlack.png
│ │ ├── cameraBlack@2x.png
│ │ └── cameraBlack@3x.png
│ ├── cameraRoundBlue.imageset
│ │ ├── Contents.json
│ │ ├── cameraRoundBlue.png
│ │ ├── cameraRoundBlue@2x.png
│ │ └── cameraRoundBlue@3x.png
│ ├── cameraRoundGreen.imageset
│ │ ├── Contents.json
│ │ ├── cameraRoundGreen.png
│ │ ├── cameraRoundGreen@2x.png
│ │ └── cameraRoundGreen@3x.png
│ ├── deviceBackground.imageset
│ │ ├── Contents.json
│ │ ├── deviceBackground@1x.png
│ │ ├── deviceBackground@2x.png
│ │ └── deviceBackground@3x.png
│ ├── deviceShadow.imageset
│ │ ├── Contents.json
│ │ ├── deviceTop@1x.png
│ │ ├── deviceTop@2x.png
│ │ └── deviceTop@3x.png
│ ├── dragInvite.imageset
│ │ ├── Contents.json
│ │ ├── dragInvite.png
│ │ ├── dragInvite@2x.png
│ │ └── dragInvite@3x.png
│ ├── emptyState.imageset
│ │ ├── Contents.json
│ │ ├── emptyState.png
│ │ ├── emptyState@2x.png
│ │ └── emptyState@3x.png
│ ├── logos
│ │ ├── .DS_Store
│ │ ├── Contents.json
│ │ ├── androidlogo.imageset
│ │ │ ├── Contents.json
│ │ │ ├── androidlogo.png
│ │ │ ├── androidlogo@2x.png
│ │ │ └── androidlogo@3x.png
│ │ ├── loaderButton.imageset
│ │ │ ├── Contents.json
│ │ │ ├── gradientedbutton.png
│ │ │ ├── gradientedbutton@2x.png
│ │ │ └── gradientedbutton@3x.png
│ │ ├── logoacer.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoAcer.png
│ │ │ ├── logoAcer@2x.png
│ │ │ └── logoAcer@3x.png
│ │ ├── logoapple.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoapple.png
│ │ │ ├── logoapple@2x.png
│ │ │ └── logoapple@3x.png
│ │ ├── logoasus.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoAsus.png
│ │ │ ├── logoAsus@2x.png
│ │ │ └── logoAsus@3x.png
│ │ ├── logogoogle.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logogoogle.png
│ │ │ ├── logogoogle@2x.png
│ │ │ └── logogoogle@3x.png
│ │ ├── logohtc.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoHtc.png
│ │ │ ├── logoHtc@2x.png
│ │ │ └── logoHtc@3x.png
│ │ ├── logohuawei.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoHuawei.png
│ │ │ ├── logoHuawei@2x.png
│ │ │ └── logoHuawei@3x.png
│ │ ├── logolenovo.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoLenovo.png
│ │ │ ├── logoLenovo@2x.png
│ │ │ └── logoLenovo@3x.png
│ │ ├── logolge.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoLg.png
│ │ │ ├── logoLg@2x.png
│ │ │ └── logoLg@3x.png
│ │ ├── logomotorola.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoMotorola.png
│ │ │ ├── logoMotorola@2x.png
│ │ │ └── logoMotorola@3x.png
│ │ ├── logonokia.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoNokia.png
│ │ │ ├── logoNokia@2x.png
│ │ │ └── logoNokia@3x.png
│ │ ├── logooneplus.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoOnePlus.png
│ │ │ ├── logoOnePlus@2x.png
│ │ │ └── logoOnePlus@3x.png
│ │ ├── logosamsung.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoSamsung.png
│ │ │ ├── logoSamsung@2x.png
│ │ │ └── logoSamsung@3x.png
│ │ ├── logosony.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoSony.png
│ │ │ ├── logoSony@2x.png
│ │ │ └── logoSony@3x.png
│ │ ├── logotagheuer.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logotagheuer.png
│ │ │ ├── logotagheuer@2x.png
│ │ │ └── logotagheuer@3x.png
│ │ └── logoxiaomi.imageset
│ │ │ ├── Contents.json
│ │ │ ├── logoXiaomi.png
│ │ │ ├── logoXiaomi@2x.png
│ │ │ └── logoXiaomi@3x.png
│ ├── moreButtonPlus.imageset
│ │ ├── Contents.json
│ │ ├── moreButtonPlus.png
│ │ ├── moreButtonPlus@2x.png
│ │ └── moreButtonPlus@3x.png
│ ├── recordButtonWhite.imageset
│ │ ├── Contents.json
│ │ ├── recordButtonWhite.png
│ │ ├── recordButtonWhite@2x.png
│ │ └── recordButtonWhite@3x.png
│ ├── revealFolder.imageset
│ │ ├── Contents.json
│ │ ├── revealFolder.png
│ │ ├── revealFolder@2x.png
│ │ └── revealFolder@3x.png
│ ├── smallFolderArrow.imageset
│ │ ├── Contents.json
│ │ ├── smallFolderArrow.png
│ │ ├── smallFolderArrow@2x.png
│ │ └── smallFolderArrow@3x.png
│ ├── stopButton.imageset
│ │ ├── Contents.json
│ │ ├── stopButton.png
│ │ ├── stopButton@2x.png
│ │ └── stopButton@3x.png
│ └── videoBlack.imageset
│ │ ├── Contents.json
│ │ ├── videoBlack.png
│ │ ├── videoBlack@2x.png
│ │ └── videoBlack@3x.png
├── Info.plist
├── LoaderView.swift
├── MasterViewController.swift
├── MasterViewController.xib
├── MovableButton.swift
├── MyPlayground.playground
│ ├── Contents.swift
│ ├── Sources
│ │ └── SupportCode.swift
│ ├── contents.xcplayground
│ └── timeline.xctimeline
├── ObbHandler.swift
├── RawOutputWiewController.swift
├── RawOutputWiewController.xib
├── RawOutputWindowController.swift
├── RawOutputWindowController.xib
├── ShellTasker.swift
├── Styles.swift
├── Take Bugreport.sh
├── TerminalOutputTextView.swift
├── UITweaker.swift
├── Util.swift
├── WindowMoverScrollview.swift
├── WindowMoverTableCellView.swift
├── WindowMoverView.swift
├── ZipHandler.swift
├── aapt
├── adb
├── convertMovieFiletoGif.sh
├── exitDemoMode.sh
├── extractIconFromApk copy.sh
├── extractIconFromApk.sh
├── fastboot
├── ffmpeg
├── getApkInfo.sh
├── getCurrentActivityForIdentifier.sh
├── getDetailsForSerial.sh
├── getResolutionForSerial.sh
├── getSerials.sh
├── getprop-example.txt
├── icon.png
├── idevicescreenshot
├── installApkOnDevice.sh
├── installObbForSerial.sh
├── installZip.sh
├── launchActivity.sh
├── postProcessMovieForSerial.sh
├── previewPopoverViewController.swift
├── scriptsPopoverViewController.swift
├── setDemoModeOptions.sh
├── startRecordingForSerial.sh
├── takeScreenshotOfDeviceWithSerial.sh
├── takeScreenshotOfDeviceWithUUID.sh
└── uninstallPackageOnDevice.sh
├── AndroidToolTests
├── AndroidToolTests.swift
└── Info.plist
├── Demos
├── dualscreenshot.gif
├── installapk.gif
├── iosandandroid.gif
├── iosscreenrecording.gif
├── iosscreenshot.gif
├── phonerecording.gif
├── phonerecordingbig.gif
├── plugging in.gif
└── scriptsfolder.gif
├── LICENSE
├── PreferencesWindowController.swift
├── PreferencesWindowController.xib
├── README.md
├── StatusTextField.swift
├── UX
├── .DS_Store
├── androidTool.sketch
├── exports
│ ├── .DS_Store
│ ├── androidlogo.png
│ ├── androidlogo@2x.png
│ ├── androidlogo@3x.png
│ ├── dragInvite.png
│ ├── dragInvite@2x.png
│ ├── dragInvite@3x.png
│ ├── gradientedbutton.png
│ ├── gradientedbutton@2x.png
│ ├── gradientedbutton@3x.png
│ ├── loaderButton.png
│ ├── loaderButton@2x.png
│ ├── loaderButton@3x.png
│ ├── loaderButtonFaded.png
│ ├── loaderButtonFaded@2x.png
│ ├── loaderButtonFaded@3x.png
│ ├── logogoogle.png
│ ├── logogoogle@2x.png
│ ├── logogoogle@3x.png
│ ├── logotagheuer.png
│ ├── logotagheuer@2x.png
│ └── logotagheuer@3x.png
└── testapp.apk
├── WIndowMoverImageView.swift
├── binaries
├── 121
│ ├── .DS_Store
│ ├── AndroidTool.app
│ │ └── Contents
│ │ │ ├── Frameworks
│ │ │ ├── libswiftAppKit.dylib
│ │ │ ├── libswiftCore.dylib
│ │ │ ├── libswiftCoreAudio.dylib
│ │ │ ├── libswiftCoreGraphics.dylib
│ │ │ ├── libswiftDarwin.dylib
│ │ │ ├── libswiftDispatch.dylib
│ │ │ ├── libswiftFoundation.dylib
│ │ │ ├── libswiftObjectiveC.dylib
│ │ │ ├── libswiftQuartzCore.dylib
│ │ │ └── libswiftSecurity.dylib
│ │ │ ├── Info.plist
│ │ │ ├── MacOS
│ │ │ └── AndroidTool
│ │ │ ├── PkgInfo
│ │ │ ├── Resources
│ │ │ ├── ApkIcon.icns
│ │ │ ├── AppIcon.icns
│ │ │ ├── Assets.car
│ │ │ ├── Base.lproj
│ │ │ │ └── MainMenu.nib
│ │ │ ├── DevicePickerViewController.nib
│ │ │ ├── DeviceViewController.nib
│ │ │ ├── MasterViewController.nib
│ │ │ ├── PreferencesWindowController.nib
│ │ │ ├── Take Bugreport.sh
│ │ │ ├── adb
│ │ │ ├── convertMovieFiletoGif.sh
│ │ │ ├── ffmpeg
│ │ │ ├── getDetailsForSerial.sh
│ │ │ ├── getResolutionForSerial.sh
│ │ │ ├── getSerials.sh
│ │ │ ├── idevicescreenshot
│ │ │ ├── installApkOnDevice.sh
│ │ │ ├── libimobiledevice.4.dylib
│ │ │ ├── libosxfuse_i32.2.dylib
│ │ │ ├── libosxfuse_i64.2.dylib
│ │ │ ├── libplist.1.1.10.dylib
│ │ │ ├── libplist.2.dylib
│ │ │ ├── libusbmuxd.1.0.8.dylib
│ │ │ ├── libusbmuxd.2.dylib
│ │ │ ├── libxml2.2.dylib
│ │ │ ├── libzip.2.dylib
│ │ │ ├── postProcessMovieForSerial.sh
│ │ │ ├── startRecordingForSerial.sh
│ │ │ ├── takeScreenshotOfDeviceWithSerial.sh
│ │ │ └── takeScreenshotOfDeviceWithUUID.sh
│ │ │ └── _CodeSignature
│ │ │ └── CodeResources
│ └── AndroidTool121.zip
├── .DS_Store
├── AndroidTool-io2.zip
├── AndroidTool-ios.zip
├── AndroidTool.app
│ └── Contents
│ │ ├── Frameworks
│ │ ├── libswiftAppKit.dylib
│ │ ├── libswiftCore.dylib
│ │ ├── libswiftCoreAudio.dylib
│ │ ├── libswiftCoreGraphics.dylib
│ │ ├── libswiftDarwin.dylib
│ │ ├── libswiftDispatch.dylib
│ │ ├── libswiftFoundation.dylib
│ │ ├── libswiftObjectiveC.dylib
│ │ ├── libswiftQuartzCore.dylib
│ │ └── libswiftSecurity.dylib
│ │ ├── Info.plist
│ │ ├── MacOS
│ │ ├── AndroidTool
│ │ └── deviceslog.txt
│ │ ├── PkgInfo
│ │ ├── Resources
│ │ ├── ApkIcon.icns
│ │ ├── AppIcon.icns
│ │ ├── Assets.car
│ │ ├── Base.lproj
│ │ │ └── MainMenu.nib
│ │ ├── DevicePickerViewController.nib
│ │ ├── DeviceViewController.nib
│ │ ├── MasterViewController.nib
│ │ ├── PreferencesWindowController.nib
│ │ ├── Take Bugreport.sh
│ │ ├── adb
│ │ ├── convertMovieFiletoGif.sh
│ │ ├── ffmpeg
│ │ ├── getDetailsForSerial.sh
│ │ ├── getResolutionForSerial.sh
│ │ ├── getSerials.sh
│ │ ├── idevicescreenshot
│ │ ├── installApkOnDevice.sh
│ │ ├── installog.txt
│ │ ├── libimobiledevice.4.dylib
│ │ ├── libosxfuse_i32.2.dylib
│ │ ├── libosxfuse_i64.2.dylib
│ │ ├── libplist.1.1.10.dylib
│ │ ├── libplist.2.dylib
│ │ ├── libusbmuxd.1.0.8.dylib
│ │ ├── libusbmuxd.2.dylib
│ │ ├── libxml2.2.dylib
│ │ ├── libzip.2.dylib
│ │ ├── postProcessMovieForSerial.sh
│ │ ├── startRecordingForSerial.sh
│ │ ├── takeScreenshotOfDeviceWithSerial.sh
│ │ └── takeScreenshotOfDeviceWithUUID.sh
│ │ └── _CodeSignature
│ │ └── CodeResources
└── AndroidTool12.zip
├── ffmpeg
├── libimobiledevice.4.dylib
├── libosxfuse_i32.2.dylib
├── libosxfuse_i64.2.dylib
├── libplist.1.1.10.dylib
├── libplist.2.dylib
├── libusbmuxd.1.0.8.dylib
├── libusbmuxd.2.dylib
├── libxml2.2.dylib
└── libzip.2.dylib
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | build/
4 | *.pbxuser
5 | !default.pbxuser
6 | *.mode1v3
7 | !default.mode1v3
8 | *.mode2v3
9 | !default.mode2v3
10 | *.perspectivev3
11 | !default.perspectivev3
12 | xcuserdata
13 | *.xccheckout
14 | *.moved-aside
15 | DerivedData
16 | *.hmap
17 | *.ipa
18 | *.xcuserstate
19 |
20 | # CocoaPods
21 | #
22 | # We recommend against adding the Pods directory to your .gitignore. However
23 | # you should judge for yourself, the pros and cons are mentioned at:
24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
25 | #
26 | # Pods/
27 |
28 | # Carthage
29 | #
30 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
31 | # Carthage/Checkouts
32 |
33 | Carthage/Build
34 |
--------------------------------------------------------------------------------
/AndroidTool.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/AndroidTool.xcodeproj/project.xcworkspace/xcshareddata/AndroidTool.xccheckout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDESourceControlProjectFavoriteDictionaryKey
6 |
7 | IDESourceControlProjectIdentifier
8 | 739E40B5-70DA-4E32-B5EE-D0F8524F2599
9 | IDESourceControlProjectName
10 | AndroidTool
11 | IDESourceControlProjectOriginsDictionary
12 |
13 | 0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C
14 | https://github.com/mortenjust/androidtool-mac.git
15 |
16 | IDESourceControlProjectPath
17 | AndroidTool.xcodeproj
18 | IDESourceControlProjectRelativeInstallPathDictionary
19 |
20 | 0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C
21 | ../..
22 |
23 | IDESourceControlProjectURL
24 | https://github.com/mortenjust/androidtool-mac.git
25 | IDESourceControlProjectVersion
26 | 111
27 | IDESourceControlProjectWCCIdentifier
28 | 0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C
29 | IDESourceControlProjectWCConfigurations
30 |
31 |
32 | IDESourceControlRepositoryExtensionIdentifierKey
33 | public.vcs.git
34 | IDESourceControlWCCIdentifierKey
35 | 0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C
36 | IDESourceControlWCCName
37 | AndroidTool
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/AndroidTool.xcodeproj/project.xcworkspace/xcshareddata/AndroidTool.xcscmblueprint:
--------------------------------------------------------------------------------
1 | {
2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "7783EA2305F9E9D4E488649A369F3078AE55A4FA",
3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
4 |
5 | },
6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
7 | "7783EA2305F9E9D4E488649A369F3078AE55A4FA" : 0,
8 | "0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C" : 0
9 | },
10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "739E40B5-70DA-4E32-B5EE-D0F8524F2599",
11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
12 | "7783EA2305F9E9D4E488649A369F3078AE55A4FA" : "androidtool-mac\/",
13 | "0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C" : "AndroidTool"
14 | },
15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "AndroidTool",
16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204,
17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "AndroidTool.xcodeproj",
18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
19 | {
20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/mortenjust\/androidtool-mac.git",
21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "0F88317C16E7E6E52DF926450A3E43CF8F5A0F9C"
23 | },
24 | {
25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/mortenjust\/androidtool-mac.git",
26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "7783EA2305F9E9D4E488649A369F3078AE55A4FA"
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/AndroidTool.xcodeproj/xcuserdata/mortenjust.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/AndroidTool.xcodeproj/xcuserdata/mortenjust.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | AndroidTool.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | C8B5145F1AE85D610071C86A
16 |
17 | primary
18 |
19 |
20 | C8B5146F1AE85D610071C86A
21 |
22 | primary
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/AndroidTool/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/.DS_Store
--------------------------------------------------------------------------------
/AndroidTool/Apk.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Apk.swift
3 | // Shellpad
4 | //
5 | // Created by Morten Just Petersen on 11/1/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class Apk: NSObject {
12 | var filepath:String!
13 | var launcherActivity:String?
14 | var appName:String = ""
15 | var packageName:String?
16 | var versionCode:String?
17 | var versionName:String?
18 | var iconPath:String?
19 | var localIconPath:String?
20 |
21 |
22 | init(rawAaptBadgingData:String) {
23 | super.init()
24 | parseRawInfo(rawAaptBadgingData)
25 | }
26 |
27 | func parseRawInfo(_ rawdata:String) {
28 | print(">>apkparskeapkinfo")
29 | let u = Util()
30 | let apk = self
31 |
32 | if let l = u.findMatchesInString(rawdata, regex: "launchable-activity: name='(.*?)'") {
33 | apk.launcherActivity = l[0]
34 | }
35 |
36 | if let n = u.findMatchesInString(rawdata, regex: "application-label:'(.*?)'") {
37 | apk.appName = n[0]
38 | }
39 |
40 | if let p = u.findMatchesInString(rawdata, regex: "package: name='(.*?)'") {
41 | apk.packageName = p[0]
42 | }
43 |
44 | if let versionCode = u.findMatchesInString(rawdata, regex: "versionCode='(.*?)'") {
45 | apk.versionCode = versionCode[0]
46 | }
47 |
48 | if let versionName = u.findMatchesInString(rawdata, regex: "versionName='(.*?)'") {
49 | apk.versionName = versionName[0]
50 | }
51 | }
52 |
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/AndroidTool/ApkHandler.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ApkHandler.swift
3 | // Shellpad
4 | //
5 | // Created by Morten Just Petersen on 11/1/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | protocol ApkHandlerDelegate {
12 | func apkHandlerDidStart()
13 | func apkHandlerDidGetInfo(_ apk:Apk)
14 | func apkHandlerDidUpdate(_ update:String)
15 | func apkHandlerDidFinish()
16 | }
17 |
18 | class ApkHandler: NSObject {
19 | var filepath:String!
20 | var delegate:ApkHandlerDelegate?
21 | var device:Device!
22 |
23 | init(filepath:String, device:Device){
24 | print(">>apk init apkhandler")
25 | super.init()
26 | self.filepath = filepath
27 | self.device = device
28 | }
29 |
30 | init(device:Device){
31 | print(">>apk init apkhandler with no apk")
32 | super.init()
33 | self.device = device
34 | }
35 |
36 | func installAndLaunch(_ complete:@escaping ()->Void){
37 | delegate?.apkHandlerDidStart()
38 | print(">>apkhandle")
39 |
40 | getInfoFromApk() { (apk) -> Void in
41 | self.install({ () -> Void in
42 | self.delegate?.apkHandlerDidUpdate("Launching \(apk.appName)...")
43 | self.launch(apk)
44 | complete()
45 | })
46 | }
47 | }
48 |
49 | func install(_ completion:@escaping ()->Void){
50 | print(">>apkinstall")
51 | delegate?.apkHandlerDidUpdate("Installing...")
52 |
53 | if device.adbIdentifier == nil { print("no adbIdentifier, aborting"); return }
54 | let s = ShellTasker(scriptFile: "installApkOnDevice")
55 |
56 | s.run(arguments: [device.adbIdentifier!, filepath]) { (output) -> Void in
57 | self.delegate?.apkHandlerDidUpdate("Installed")
58 | completion()
59 | }
60 | }
61 |
62 | func uninstallPackageWithName(_ packageName:String, completion:@escaping ()->Void){
63 | print(">>Uninstall")
64 | delegate?.apkHandlerDidUpdate("Uninstalling app")
65 | let s = ShellTasker(scriptFile: "uninstallPackageOnDevice")
66 | let args = [device.adbIdentifier!, packageName]
67 |
68 | s.run(arguments: args, isUserScript: false, isIOS: false) { (output) -> Void in
69 | completion()
70 | }
71 |
72 | }
73 |
74 | func getInfoFromApk(_ complete:@escaping (Apk) -> Void){
75 | print(">>apkgetinfofromapk")
76 | delegate?.apkHandlerDidUpdate("Getting info...")
77 |
78 | let shell = ShellTasker(scriptFile: "getApkInfo")
79 | shell.run(arguments: [self.filepath]) { (output) -> Void in
80 | let apk = Apk(rawAaptBadgingData: output as String)
81 | self.delegate?.apkHandlerDidGetInfo(apk)
82 |
83 | // try getting the icon out
84 |
85 | let iconShell = ShellTasker(scriptFile: "extractIconFromApk")
86 | iconShell.run(arguments: [self.filepath]) { (output) -> Void in
87 | print("Ready to add nsurl path to apk object: \(output)")
88 |
89 | apk.localIconPath = (output as String).trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
90 |
91 |
92 | complete(apk)
93 | }
94 |
95 | }
96 | }
97 |
98 |
99 | func launch(_ apk:Apk){
100 | print(">>apklaunch")
101 | delegate?.apkHandlerDidUpdate("Launching...")
102 |
103 | if let packageName = apk.packageName, let launcherActivity = apk.launcherActivity {
104 |
105 | let ac = "\(packageName)/\(launcherActivity)"
106 |
107 | print("apklaunch of \(ac)")
108 |
109 | let s = ShellTasker(scriptFile: "launchActivity")
110 | s.run(arguments: [device.adbIdentifier!, ac]) { (output) -> Void in
111 | print("apk done launching")
112 | self.delegate?.apkHandlerDidUpdate("Running \(apk.appName)")
113 | self.delegate?.apkHandlerDidFinish()
114 | }
115 | }
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/AndroidTool/C.swift:
--------------------------------------------------------------------------------
1 | //
2 | // C.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/17/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class C: Constants {
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/AndroidTool/CameraButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CameraButton.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 12/6/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class CameraButton: NSButton {
12 |
13 | required init?(coder: NSCoder) {
14 | super.init(coder: coder)
15 | unregisterDraggedTypes()
16 | }
17 |
18 | override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
19 | return NSDragOperation.copy
20 | }
21 |
22 | override func draggingUpdated(_ sender: NSDraggingInfo) -> NSDragOperation {
23 | return NSDragOperation.copy
24 | }
25 |
26 | override func draw(_ dirtyRect: NSRect) {
27 | super.draw(dirtyRect)
28 |
29 | // Drawing code here.
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/AndroidTool/Constants.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Constants.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/13/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class Constants {
12 | static let NOTIF_NEWDATA = "mj.newData"
13 | static let NOTIF_NEWDATAVERBOSE = "mj.newDataVerbose"
14 | static let NOTIF_NEWSESSION = "mj.newSession"
15 | static let NOTIF_ALLOUTPUT = "mj.newAllOutput"
16 | static let NOTIF_COMMAND = "mj.command"
17 | static let NOTIF_COMMANDVERBOSE = "mj.commandVerbose"
18 | static let DROP_INVITE = "Drop a ZIP or APK prototype"
19 | static let PREF_SCREENSHOTFOLDER = "screenshotsFolder"
20 | static let PREF_SCREENRECORDINGSFOLDER = "screenRecordingsFolder"
21 | static let PREF_USEACTIVITYINFILENAME = "useActivityInFilename"
22 | static let PREF_LAUNCHINSTALLEDAPP = "launchInstalledApp"
23 | static let PREF_FLASHIMAGESINZIPFILES = "flashImagesInZipFiles"
24 | static let PREF_GENERATEGIF = "generateGif"
25 |
26 |
27 | static let defaultPrefValues = [
28 | "timeValue":"10:09"
29 | ,"mobileDatatype":"No data type"
30 | ,"batteryLevel": "100%"
31 | ,"mobileLevel" : "4 bars"
32 | ,"verboseOutput" : false
33 | ,"screenRecordingsFolder": ""
34 | ,"screenshotsFolder": ""
35 | ,"createGIF": true
36 | ,"useActivityInFilename":true
37 | ,"launchInstalledApp":true
38 | ,"flashImagesInZipFiles":false
39 | ,"generateGif":false
40 | ] as [String : Any]
41 |
42 | static let tweakProperties = ["bluetooth", "clock", "alarm", "sync", "wifi", "location", "volume", "mute", "notifications", "mobile", "mobileDatatype", "mobileLevel", "batteryLevel", "batteryCharging", "airplane", "nosim", "speakerphone"]
43 |
44 | static let WIFI = "wifi"
45 | static let NOTIFICATIONS = "notifications"
46 | static let TIME = "time"
47 | static let TIMEVALUE = "timeValue"
48 | static let BLUETOOTH = "bluetooth"
49 | static let ALARM = "alarm"
50 | static let SYNC = "sync"
51 | static let LOCATION = "location"
52 | static let VOLUME = "volume"
53 | static let MUTE = "mute"
54 | static let DATATYPE = "datatype"
55 | static let BATTERYLEVEL = "batteryLevel"
56 | static let CHARGING = "charging"
57 | static let VERBOSEOUTPUT = "verboseOutput"
58 | }
59 |
--------------------------------------------------------------------------------
/AndroidTool/DevicePickerViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DevicePickerViewController.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 4/24/15.
6 | // Copyright (c) 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 |
12 | class DevicePickerViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource {
13 |
14 | @IBOutlet weak var deviceTable: NSTableView!
15 |
16 | var devices : [Device]!
17 | var apkPath: String!
18 |
19 | @IBOutlet weak var spinner: NSProgressIndicator!
20 |
21 | override init?(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
22 | super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
23 |
24 | }
25 |
26 | @IBAction func cancelPressed(_ sender: AnyObject) {
27 | if #available(OSX 10.10, *) {
28 | self.dismiss(nil)
29 | } else {
30 | // Fallback on earlier versions
31 | }
32 | }
33 |
34 | func numberOfRows(in tableView: NSTableView) -> Int {
35 | return devices.count
36 | }
37 |
38 | func installApkOnDevice(_ device:Device){
39 | let adbIdentifier = device.adbIdentifier!
40 |
41 | spinner.isHidden = false
42 | spinner.startAnimation(nil)
43 |
44 | let args = ["\(adbIdentifier)",
45 | "\(apkPath)"]
46 |
47 | ShellTasker(scriptFile: "installApkOnDevice").run(arguments: args) { (output) -> Void in
48 |
49 | Util().showNotification("App installed on \(device.readableIdentifier())", moreInfo: "\(output)", sound: true)
50 | if #available(OSX 10.10, *) {
51 | self.dismiss(nil)
52 | } else {
53 | // Fallback on earlier versions
54 | }
55 | }
56 | }
57 |
58 | func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
59 | installApkOnDevice(devices[row])
60 | return true
61 | }
62 |
63 | func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
64 | return devices[row].model
65 | }
66 |
67 | required init?(coder: NSCoder) {
68 | fatalError("init(coder:) has not been implemented")
69 | }
70 |
71 | override func awakeFromNib() {
72 | deviceTable.reloadData()
73 | print("devicescount: \(devices.count)")
74 | }
75 |
76 | override func viewDidLoad() {
77 | if #available(OSX 10.10, *) {
78 | super.viewDidLoad()
79 | } else {
80 | // Fallback on earlier versions
81 | }
82 | // Do view setup here.
83 | }
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/AndroidTool/DropPassThroughImageView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DropPassThroughImageView.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 12/6/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class DropPassThroughImageView: NSImageView {
12 |
13 | required init?(coder: NSCoder) {
14 | super.init(coder: coder)
15 | setup()
16 | }
17 |
18 | func setup(){
19 | unregisterDraggedTypes()
20 | }
21 |
22 | override func draw(_ dirtyRect: NSRect) {
23 | super.draw(dirtyRect)
24 |
25 | // Drawing code here.
26 | }
27 |
28 | override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
29 | return NSDragOperation.copy
30 | }
31 |
32 | override func draggingUpdated(_ sender: NSDraggingInfo) -> NSDragOperation {
33 | return NSDragOperation.copy
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/AndroidTool/DropReceiverView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DropReceiverView.swift
3 | // Shellpad
4 | //
5 | // Created by Morten Just Petersen on 10/30/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | protocol DropDelegate {
12 | func dropDragEntered(_ filePath:String)
13 | func dropDragPerformed(_ filePath:String)
14 | func dropDragExited()
15 | func dropUpdated(_ mouseAt:NSPoint)
16 | }
17 |
18 | class DropReceiverView: NSView {
19 |
20 | var delegate:DropDelegate?
21 | var testVar = "only you can see this";
22 |
23 | func removeBackgroundColor(){
24 | layer?.backgroundColor = NSColor.clear.cgColor
25 | }
26 |
27 | func addBackgroundColor(){
28 | layer?.backgroundColor = NSColor(red:0.267, green:0.251, blue:0.290, alpha:1).cgColor
29 | }
30 |
31 | func setup(){
32 | wantsLayer = true
33 | let fileTypes = [
34 | "public.data"
35 | ]
36 | register(forDraggedTypes: fileTypes);
37 | }
38 | //https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
39 |
40 | override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
41 |
42 | // Swift.print("HELLO \(getPathFromBoard(sender.draggingPasteboard()))")
43 | let path = getPathFromBoard(sender.draggingPasteboard())
44 | delegate?.dropDragEntered(path)
45 | addBackgroundColor()
46 | return NSDragOperation.copy
47 | }
48 |
49 | override func performDragOperation(_ sender: NSDraggingInfo) -> Bool {
50 | return true
51 | }
52 |
53 | override func draggingUpdated(_ sender: NSDraggingInfo) -> NSDragOperation {
54 | delegate?.dropUpdated(sender.draggingLocation())
55 | return NSDragOperation.copy
56 | }
57 | override func draggingExited(_ sender: NSDraggingInfo?) {
58 | removeBackgroundColor()
59 | delegate?.dropDragExited()
60 | }
61 |
62 | override func concludeDragOperation(_ sender: NSDraggingInfo?) {
63 | let path = getPathFromBoard((sender?.draggingPasteboard())!)
64 | Swift.print("path is \(path)")
65 | removeBackgroundColor()
66 | delegate?.dropDragPerformed(path)
67 | }
68 |
69 | func getPathFromBoard(_ board:NSPasteboard) -> String {
70 | return (NSURL.init(from: board)?.path)!
71 | }
72 |
73 | override init(frame frameRect: NSRect) {
74 | super.init(frame: frameRect)
75 | setup()
76 | }
77 | required init?(coder: NSCoder) {
78 | super.init(coder: coder)
79 | setup()
80 | }
81 |
82 | override func draw(_ dirtyRect: NSRect) {
83 | super.draw(dirtyRect)
84 |
85 | // Drawing code here.
86 | }
87 |
88 |
89 | }
90 |
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/.DS_Store
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_128x128.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_128x128@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_16x16.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_16x16@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_16x16@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_256x256.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_256x256@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_256x256@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_32x32.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_32x32@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_32x32@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_512x512.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_512x512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/ApkIcon.iconset/icon_512x512@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "16x16",
5 | "idiom" : "mac",
6 | "filename" : "androidToolIcon16.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "16x16",
11 | "idiom" : "mac",
12 | "filename" : "androidToolIcon32.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "32x32",
17 | "idiom" : "mac",
18 | "filename" : "androidToolIcon32-1.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "32x32",
23 | "idiom" : "mac",
24 | "filename" : "androidToolIcon64.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "128x128",
29 | "idiom" : "mac",
30 | "filename" : "androidToolIcon128.png",
31 | "scale" : "1x"
32 | },
33 | {
34 | "size" : "128x128",
35 | "idiom" : "mac",
36 | "filename" : "androidToolIcon256.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "256x256",
41 | "idiom" : "mac",
42 | "filename" : "androidToolIcon256-1.png",
43 | "scale" : "1x"
44 | },
45 | {
46 | "size" : "256x256",
47 | "idiom" : "mac",
48 | "filename" : "androidToolIcon512.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "512x512",
53 | "idiom" : "mac",
54 | "filename" : "androidToolIcon512-1.png",
55 | "scale" : "1x"
56 | },
57 | {
58 | "size" : "512x512",
59 | "idiom" : "mac",
60 | "filename" : "androidToolIcon1024.png",
61 | "scale" : "2x"
62 | }
63 | ],
64 | "info" : {
65 | "version" : 1,
66 | "author" : "xcode"
67 | }
68 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon1024.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon128.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon16.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon256-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon256-1.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon256.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon32-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon32-1.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon32.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon512-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon512-1.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon512.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/AppIcon.appiconset/androidToolIcon64.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/PhoneBlack.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "PhoneBlack.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "PhoneBlack@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "PhoneBlack@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/PhoneBlack.imageset/PhoneBlack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/PhoneBlack.imageset/PhoneBlack.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/PhoneBlack.imageset/PhoneBlack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/PhoneBlack.imageset/PhoneBlack@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/PhoneBlack.imageset/PhoneBlack@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/PhoneBlack.imageset/PhoneBlack@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/WatchBlack.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "WatchBlack.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "WatchBlack@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "WatchBlack@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/WatchBlack.imageset/WatchBlack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/WatchBlack.imageset/WatchBlack.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/WatchBlack.imageset/WatchBlack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/WatchBlack.imageset/WatchBlack@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/WatchBlack.imageset/WatchBlack@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/WatchBlack.imageset/WatchBlack@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraBlack.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "cameraBlack.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "cameraBlack@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "cameraBlack@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraBlack.imageset/cameraBlack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraBlack.imageset/cameraBlack.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraBlack.imageset/cameraBlack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraBlack.imageset/cameraBlack@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraBlack.imageset/cameraBlack@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraBlack.imageset/cameraBlack@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "cameraRoundBlue.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "cameraRoundBlue@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "cameraRoundBlue@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/cameraRoundBlue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/cameraRoundBlue.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/cameraRoundBlue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/cameraRoundBlue@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/cameraRoundBlue@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraRoundBlue.imageset/cameraRoundBlue@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "cameraRoundGreen.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "cameraRoundGreen@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "cameraRoundGreen@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/cameraRoundGreen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/cameraRoundGreen.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/cameraRoundGreen@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/cameraRoundGreen@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/cameraRoundGreen@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/cameraRoundGreen.imageset/cameraRoundGreen@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "deviceBackground@1x.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "deviceBackground@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "deviceBackground@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceBackground.imageset/deviceBackground@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/deviceBackground.imageset/deviceBackground@1x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceBackground.imageset/deviceBackground@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/deviceBackground.imageset/deviceBackground@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceBackground.imageset/deviceBackground@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/deviceBackground.imageset/deviceBackground@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceShadow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "deviceTop@1x.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "deviceTop@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "deviceTop@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceShadow.imageset/deviceTop@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/deviceShadow.imageset/deviceTop@1x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceShadow.imageset/deviceTop@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/deviceShadow.imageset/deviceTop@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/deviceShadow.imageset/deviceTop@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/deviceShadow.imageset/deviceTop@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/dragInvite.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "dragInvite.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "dragInvite@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "dragInvite@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/dragInvite.imageset/dragInvite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/dragInvite.imageset/dragInvite.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/dragInvite.imageset/dragInvite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/dragInvite.imageset/dragInvite@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/dragInvite.imageset/dragInvite@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/dragInvite.imageset/dragInvite@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/emptyState.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "emptyState.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "emptyState@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "emptyState@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/emptyState.imageset/emptyState.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/emptyState.imageset/emptyState.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/emptyState.imageset/emptyState@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/emptyState.imageset/emptyState@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/emptyState.imageset/emptyState@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/emptyState.imageset/emptyState@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/.DS_Store
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/androidlogo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "androidlogo.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "androidlogo@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "androidlogo@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/androidlogo.imageset/androidlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/androidlogo.imageset/androidlogo.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/androidlogo.imageset/androidlogo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/androidlogo.imageset/androidlogo@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/androidlogo.imageset/androidlogo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/androidlogo.imageset/androidlogo@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/loaderButton.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "gradientedbutton.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "gradientedbutton@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "gradientedbutton@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/loaderButton.imageset/gradientedbutton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/loaderButton.imageset/gradientedbutton.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/loaderButton.imageset/gradientedbutton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/loaderButton.imageset/gradientedbutton@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/loaderButton.imageset/gradientedbutton@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/loaderButton.imageset/gradientedbutton@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoacer.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoAcer.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoAcer@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoAcer@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoacer.imageset/logoAcer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoacer.imageset/logoAcer.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoacer.imageset/logoAcer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoacer.imageset/logoAcer@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoacer.imageset/logoAcer@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoacer.imageset/logoAcer@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoapple.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoapple.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoapple@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoapple@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoapple.imageset/logoapple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoapple.imageset/logoapple.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoapple.imageset/logoapple@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoapple.imageset/logoapple@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoapple.imageset/logoapple@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoapple.imageset/logoapple@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoasus.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoAsus.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoAsus@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoAsus@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoasus.imageset/logoAsus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoasus.imageset/logoAsus.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoasus.imageset/logoAsus@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoasus.imageset/logoAsus@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoasus.imageset/logoAsus@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoasus.imageset/logoAsus@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logogoogle.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "logogoogle.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "logogoogle@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "logogoogle@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logogoogle.imageset/logogoogle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logogoogle.imageset/logogoogle.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logogoogle.imageset/logogoogle@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logogoogle.imageset/logogoogle@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logogoogle.imageset/logogoogle@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logogoogle.imageset/logogoogle@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohtc.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoHtc.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoHtc@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoHtc@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohtc.imageset/logoHtc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logohtc.imageset/logoHtc.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohtc.imageset/logoHtc@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logohtc.imageset/logoHtc@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohtc.imageset/logoHtc@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logohtc.imageset/logoHtc@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohuawei.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoHuawei.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoHuawei@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoHuawei@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohuawei.imageset/logoHuawei.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logohuawei.imageset/logoHuawei.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohuawei.imageset/logoHuawei@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logohuawei.imageset/logoHuawei@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logohuawei.imageset/logoHuawei@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logohuawei.imageset/logoHuawei@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolenovo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoLenovo.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoLenovo@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoLenovo@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolenovo.imageset/logoLenovo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logolenovo.imageset/logoLenovo.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolenovo.imageset/logoLenovo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logolenovo.imageset/logoLenovo@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolenovo.imageset/logoLenovo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logolenovo.imageset/logoLenovo@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolge.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoLg.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoLg@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoLg@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolge.imageset/logoLg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logolge.imageset/logoLg.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolge.imageset/logoLg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logolge.imageset/logoLg@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logolge.imageset/logoLg@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logolge.imageset/logoLg@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logomotorola.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoMotorola.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoMotorola@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoMotorola@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logomotorola.imageset/logoMotorola.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logomotorola.imageset/logoMotorola.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logomotorola.imageset/logoMotorola@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logomotorola.imageset/logoMotorola@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logomotorola.imageset/logoMotorola@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logomotorola.imageset/logoMotorola@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logonokia.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoNokia.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoNokia@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoNokia@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logonokia.imageset/logoNokia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logonokia.imageset/logoNokia.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logonokia.imageset/logoNokia@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logonokia.imageset/logoNokia@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logonokia.imageset/logoNokia@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logonokia.imageset/logoNokia@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logooneplus.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoOnePlus.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoOnePlus@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoOnePlus@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logooneplus.imageset/logoOnePlus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logooneplus.imageset/logoOnePlus.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logooneplus.imageset/logoOnePlus@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logooneplus.imageset/logoOnePlus@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logooneplus.imageset/logoOnePlus@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logooneplus.imageset/logoOnePlus@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosamsung.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoSamsung.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoSamsung@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoSamsung@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosamsung.imageset/logoSamsung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logosamsung.imageset/logoSamsung.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosamsung.imageset/logoSamsung@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logosamsung.imageset/logoSamsung@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosamsung.imageset/logoSamsung@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logosamsung.imageset/logoSamsung@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosony.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoSony.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoSony@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoSony@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosony.imageset/logoSony.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logosony.imageset/logoSony.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosony.imageset/logoSony@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logosony.imageset/logoSony@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logosony.imageset/logoSony@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logosony.imageset/logoSony@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "logotagheuer.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "logotagheuer@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "logotagheuer@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/logotagheuer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/logotagheuer.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/logotagheuer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/logotagheuer@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/logotagheuer@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logotagheuer.imageset/logotagheuer@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "logoXiaomi.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "logoXiaomi@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "logoXiaomi@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/logoXiaomi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/logoXiaomi.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/logoXiaomi@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/logoXiaomi@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/logoXiaomi@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/logos/logoxiaomi.imageset/logoXiaomi@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/moreButtonPlus.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "moreButtonPlus.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "moreButtonPlus@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "moreButtonPlus@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/moreButtonPlus.imageset/moreButtonPlus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/moreButtonPlus.imageset/moreButtonPlus.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/moreButtonPlus.imageset/moreButtonPlus@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/moreButtonPlus.imageset/moreButtonPlus@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/moreButtonPlus.imageset/moreButtonPlus@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/moreButtonPlus.imageset/moreButtonPlus@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/recordButtonWhite.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "recordButtonWhite.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "recordButtonWhite@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "recordButtonWhite@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/recordButtonWhite.imageset/recordButtonWhite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/recordButtonWhite.imageset/recordButtonWhite.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/recordButtonWhite.imageset/recordButtonWhite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/recordButtonWhite.imageset/recordButtonWhite@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/recordButtonWhite.imageset/recordButtonWhite@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/recordButtonWhite.imageset/recordButtonWhite@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/revealFolder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "revealFolder.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "revealFolder@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "revealFolder@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/revealFolder.imageset/revealFolder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/revealFolder.imageset/revealFolder.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/revealFolder.imageset/revealFolder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/revealFolder.imageset/revealFolder@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/revealFolder.imageset/revealFolder@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/revealFolder.imageset/revealFolder@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/smallFolderArrow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "smallFolderArrow.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "smallFolderArrow@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "smallFolderArrow@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/smallFolderArrow.imageset/smallFolderArrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/smallFolderArrow.imageset/smallFolderArrow.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/smallFolderArrow.imageset/smallFolderArrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/smallFolderArrow.imageset/smallFolderArrow@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/smallFolderArrow.imageset/smallFolderArrow@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/smallFolderArrow.imageset/smallFolderArrow@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/stopButton.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "stopButton.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "stopButton@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "stopButton@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/stopButton.imageset/stopButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/stopButton.imageset/stopButton.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/stopButton.imageset/stopButton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/stopButton.imageset/stopButton@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/stopButton.imageset/stopButton@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/stopButton.imageset/stopButton@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/videoBlack.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x",
6 | "filename" : "videoBlack.png"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x",
11 | "filename" : "videoBlack@2x.png"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x",
16 | "filename" : "videoBlack@3x.png"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/videoBlack.imageset/videoBlack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/videoBlack.imageset/videoBlack.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/videoBlack.imageset/videoBlack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/videoBlack.imageset/videoBlack@2x.png
--------------------------------------------------------------------------------
/AndroidTool/Images.xcassets/videoBlack.imageset/videoBlack@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/Images.xcassets/videoBlack.imageset/videoBlack@3x.png
--------------------------------------------------------------------------------
/AndroidTool/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDocumentTypes
8 |
9 |
10 | CFBundleTypeExtensions
11 |
12 | apk
13 |
14 | CFBundleTypeIconFile
15 | ApkIcon
16 | CFBundleTypeName
17 | apk
18 | CFBundleTypeRole
19 | Viewer
20 | LSHandlerRank
21 | Default
22 | LSTypeIsPackage
23 | 1
24 | NSDocumentClass
25 |
26 |
27 |
28 | CFBundleExecutable
29 | $(EXECUTABLE_NAME)
30 | CFBundleIconFile
31 | AppIcon
32 | CFBundleIdentifier
33 | $(PRODUCT_BUNDLE_IDENTIFIER)
34 | CFBundleInfoDictionaryVersion
35 | 6.0
36 | CFBundleName
37 | $(PRODUCT_NAME)
38 | CFBundlePackageType
39 | APPL
40 | CFBundleShortVersionString
41 | 1.65
42 | CFBundleSignature
43 | ????
44 | CFBundleVersion
45 | 1
46 | LSApplicationCategoryType
47 |
48 | LSMinimumSystemVersion
49 | $(MACOSX_DEPLOYMENT_TARGET)
50 | NSHumanReadableCopyright
51 | Copyright © 2015 Morten Just Petersen. All rights reserved.
52 | NSMainNibFile
53 | MainMenu
54 | NSPrincipalClass
55 | NSApplication
56 | UTExportedTypeDeclarations
57 |
58 |
59 | CFBundleTypeExtensions
60 |
61 | apk
62 |
63 | CFBundleTypeIconFile
64 | ApkIcon
65 | CFBundleTypeName
66 | apk
67 | CFBundleTypeRole
68 | Viewer
69 | LSHandlerRank
70 | Default
71 | LSTypeIsPackage
72 | 1
73 | NSDocumentClass
74 |
75 | UTTypeDescription
76 | Android Application
77 | UTTypeIconFile
78 | ApkIcon
79 | UTTypeIdentifier
80 | com.mortenjust.AndroidTool.app
81 | UTTypeTagSpecification
82 |
83 | public.filename-extension
84 |
85 | apk
86 |
87 |
88 |
89 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/AndroidTool/LoaderView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LoaderView.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/20/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class LoaderView: NSImageView {
12 |
13 |
14 | required init?(coder: NSCoder) {
15 | super.init(coder: coder)
16 | setup()
17 | }
18 |
19 | override init(frame frameRect: NSRect) {
20 | super.init(frame: frameRect)
21 | setup()
22 | }
23 |
24 |
25 | func setup(){
26 | self.wantsLayer = true
27 | isHidden = true
28 | }
29 |
30 |
31 | func startRotating(){
32 | isHidden = false
33 | let rotate = CABasicAnimation(keyPath: "transform.rotation")
34 | rotate.fillMode = kCAFillModeForwards
35 | rotate.fromValue = 0.0
36 | rotate.toValue = CGFloat(.pi * 2.0)
37 | rotate.duration = 1
38 | rotate.repeatCount = Float.infinity
39 | layer?.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
40 | layer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
41 | layer?.add(rotate, forKey: nil)
42 | }
43 | func stopRotatingAndReset(){
44 | stopRotating()
45 |
46 | CATransaction.begin()
47 | CATransaction.setCompletionBlock { () -> Void in
48 | self.isHidden = true
49 | }
50 |
51 | let rotate = CABasicAnimation(keyPath: "transform.rotation")
52 | rotate.fillMode = kCAFillModeForwards
53 | rotate.toValue = 0.0
54 | rotate.duration = 0.3
55 |
56 | layer?.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
57 | layer?.anchorPoint = CGPoint(x: 0.5, y: 0.5)
58 |
59 | layer?.add(rotate, forKey: nil)
60 | CATransaction.commit()
61 |
62 | }
63 |
64 | func stopRotating(){
65 | layer?.removeAllAnimations()
66 | }
67 |
68 | override func draggingUpdated(_ sender: NSDraggingInfo) -> NSDragOperation {
69 | return NSDragOperation.copy
70 | }
71 |
72 | override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
73 | return NSDragOperation.copy
74 | }
75 |
76 | override func draw(_ dirtyRect: NSRect) {
77 | super.draw(dirtyRect)
78 |
79 | // Drawing code here.
80 | }
81 |
82 | }
83 |
--------------------------------------------------------------------------------
/AndroidTool/MovableButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MovableButton.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 12/6/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class MovableButton: NSButton {
12 |
13 | func moveUpBy(_ y:CGFloat, delaySeconds:CFTimeInterval=0){
14 | self.layer?.removeAllAnimations()
15 | let moveTo:CGFloat = (layer?.position.y)! + y
16 | let move = CABasicAnimation(keyPath: "position.y")
17 | move.duration = 1
18 | move.beginTime = CACurrentMediaTime() + delaySeconds
19 | move.toValue = moveTo
20 | move.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
21 |
22 | CATransaction.begin()
23 | CATransaction.setCompletionBlock { () -> Void in
24 | self.frame.origin.y = (self.layer?.position.y)! + y
25 | }
26 |
27 | layer?.add(move, forKey: "moveUp")
28 | CATransaction.commit()
29 | }
30 |
31 | func moveDownBy(_ y:CGFloat, delaySeconds:CFTimeInterval=0){
32 | self.layer?.removeAllAnimations()
33 | let moveTo:CGFloat = (layer?.position.y)! - y
34 | let move = CABasicAnimation(keyPath: "position.y")
35 | move.duration = 1
36 | move.beginTime = CACurrentMediaTime() + delaySeconds
37 | move.toValue = moveTo
38 | move.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
39 |
40 | CATransaction.begin()
41 | CATransaction.setCompletionBlock { () -> Void in
42 | self.frame.origin.y = (self.layer?.position.y)! - y
43 | }
44 |
45 | layer?.add(move, forKey: "moveDown")
46 | CATransaction.commit()
47 | }
48 |
49 | func fadeIn(){
50 | let fade = CABasicAnimation(keyPath: "opacity")
51 | fade.duration = 1
52 | fade.fromValue = 0
53 | fade.toValue = 1
54 | CATransaction.begin()
55 | layer?.add(fade, forKey: "fadeIn")
56 | CATransaction.commit()
57 | layer?.opacity = 1
58 | }
59 |
60 | func fadeOut(_ completion:@escaping ()->Void){
61 | let fade = CABasicAnimation(keyPath: "opacity")
62 | fade.duration = 1
63 | fade.toValue = 0
64 |
65 | CATransaction.begin()
66 | CATransaction.setCompletionBlock { () -> Void in
67 | completion()
68 | }
69 | layer?.add(fade, forKey: "fadeIn")
70 | CATransaction.commit()
71 | layer?.opacity = 0
72 | }
73 |
74 | func moveUpForUninstallButton(_ delaySeconds:CFTimeInterval=0){
75 | moveUpBy(20, delaySeconds: delaySeconds)
76 | }
77 |
78 | func moveDownForUninstallButton(_ delaySeconds:CFTimeInterval=0){
79 | moveDownBy(20, delaySeconds: delaySeconds)
80 | }
81 |
82 | required init?(coder: NSCoder) {
83 | super.init(coder: coder)
84 | wantsLayer = true
85 | }
86 |
87 | override func draw(_ dirtyRect: NSRect) {
88 | super.draw(dirtyRect)
89 |
90 | // Drawing code here.
91 | }
92 |
93 |
94 |
95 |
96 | }
97 |
--------------------------------------------------------------------------------
/AndroidTool/MyPlayground.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | //: Playground - noun: a place where people can play
2 |
3 | import Cocoa
4 | import Foundation
5 |
6 | var string = "~/Desktop"
7 | var bol:Bool = true
8 |
9 | "hej \(bol)"
10 |
11 |
12 | NSString(string: "~user/Desktop/AndroidTool").stringByExpandingTildeInPath
13 |
14 |
15 |
16 | func getFileSize(filePath:String) -> UInt64 {
17 |
18 | do {
19 | let atts:NSDictionary = try NSFileManager.defaultManager().attributesOfItemAtPath(filePath)
20 | return atts.fileSize()
21 | } catch _ {
22 | }
23 |
24 | return 1
25 | }
26 |
27 | let filepath="/Users/mortenjust/Downloads/obb/com.ea.game.nfs14_row-4317.obb"
28 |
29 | getFileSize(filepath)
--------------------------------------------------------------------------------
/AndroidTool/MyPlayground.playground/Sources/SupportCode.swift:
--------------------------------------------------------------------------------
1 | //
2 | // This file (and all other Swift source files in the Sources directory of this playground) will be precompiled into a framework which is automatically made available to MyPlayground.playground.
3 | //
4 |
--------------------------------------------------------------------------------
/AndroidTool/MyPlayground.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/AndroidTool/MyPlayground.playground/timeline.xctimeline:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/AndroidTool/ObbHandler.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ObbHandler.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 1/20/16.
6 | // Copyright © 2016 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | protocol ObbHandlerDelegate {
12 | func obbHandlerDidStart(_ bytes:String)
13 | func obbHandlerDidFinish()
14 | }
15 |
16 | class ObbHandler: NSObject {
17 | var filePath:String!
18 | var delegate:ObbHandlerDelegate?
19 | var device:Device!
20 | var fileSize:UInt64?
21 |
22 | init(filePath:String, device:Device){
23 | print(">>obb init obbhandler")
24 | super.init()
25 | self.filePath = filePath
26 | self.device = device
27 | self.fileSize = Util.getFileSizeForFilePath(filePath)
28 | }
29 |
30 | func pushToDevice(){
31 | print(">>zip flash")
32 |
33 | let shell = ShellTasker(scriptFile: "installObbForSerial")
34 | let bytes = (fileSize != nil) ? Util.formatBytes(fileSize!) : "? bytes"
35 |
36 | delegate?.obbHandlerDidStart(bytes)
37 |
38 | print("startin obb copying the \(bytes) file")
39 | shell.run(arguments: [self.device.adbIdentifier!, self.filePath]) { (output) -> Void in
40 | print("done copying OBB to device")
41 | self.delegate?.obbHandlerDidFinish()
42 | }
43 | }
44 |
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/AndroidTool/RawOutputWiewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RawOutputWiewController.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/21/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class RawOutputWiewController: NSViewController {
12 |
13 |
14 |
15 |
16 | override func viewDidLoad() {
17 | if #available(OSX 10.10, *) {
18 | super.viewDidLoad()
19 | } else {
20 | // Fallback on earlier versions
21 | }
22 | // Do view setup here.
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/AndroidTool/RawOutputWiewController.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/AndroidTool/RawOutputWindowController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RawOutputWindowController.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/21/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class RawOutputWindowController: NSWindowController {
12 |
13 |
14 | @IBAction func verboseClicked(_ sender: AnyObject) {
15 | }
16 |
17 |
18 | override func windowDidLoad() {
19 | super.windowDidLoad()
20 |
21 | // register to receive notifciations
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/AndroidTool/ShellTasker.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ShellTasker.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 4/23/15.
6 | // Copyright (c) 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 |
12 | protocol ShellTaskDelegate {
13 | func shellTaskDidBegin()
14 | func shellTaskDidFinish()
15 | }
16 |
17 | class ShellTasker: NSObject {
18 | var scriptFile:String
19 | var task:Process!
20 | var outputIsVerbose = false;
21 |
22 | init(scriptFile:String){
23 | self.scriptFile = scriptFile
24 | print("T:\(scriptFile)")
25 | }
26 |
27 | func stop(){
28 | task.terminate()
29 | }
30 |
31 | func postNotification(_ message:NSString, channel:String){
32 | NotificationCenter.default.post(name: Notification.Name(rawValue: channel), object: message)
33 | }
34 |
35 | func run(arguments args:[String]=[], isUserScript:Bool = false, isIOS:Bool = false, complete:@escaping (_ output:NSString)-> Void) {
36 |
37 | var output = NSString()
38 | var data = Data()
39 |
40 | var scriptPath:String
41 |
42 | if isUserScript {
43 | scriptPath = scriptFile
44 | } else {
45 | scriptPath = Bundle.main.path(forResource: scriptFile, ofType: "sh")!
46 | }
47 |
48 | let resourcesUrl = NSURL(fileURLWithPath: Bundle.main.path(forResource: "adb", ofType: "")!).deletingLastPathComponent
49 |
50 | let resourcesPath = resourcesUrl?.path
51 |
52 | //let resourcesPath = NSBundle.mainBundle().pathForResource("adb", ofType: "")?.stringByDeletingLastPathComponent
53 |
54 | let bash = "/bin/bash"
55 |
56 | task = Process()
57 | let pipe = Pipe()
58 |
59 | task.launchPath = bash
60 |
61 | var allArguments = [String]()
62 | allArguments.append("\(scriptPath)") // $1
63 |
64 | if !isIOS {
65 | allArguments.append(resourcesPath!) // $1
66 | } else
67 | {
68 | let imobileUrl = NSURL(fileURLWithPath: Bundle.main.path(forResource: "idevicescreenshot", ofType: "")!).deletingLastPathComponent
69 | let imobilePath = imobileUrl?.path
70 | //let imobilePath = NSBundle.mainBundle().pathForResource("idevicescreenshot", ofType: "")?.stringByDeletingLastPathComponent
71 | allArguments.append(imobilePath!) // $1
72 | }
73 |
74 | for arg in args {
75 | allArguments.append(arg)
76 | }
77 |
78 | task.arguments = allArguments
79 |
80 | // was task.arguments = [scriptPath, resourcesPath!, args]
81 |
82 | task.standardOutput = pipe
83 | task.standardError = pipe
84 |
85 | // post a notification with the command, for the rawoutput debugging window
86 | if self.outputIsVerbose {
87 | postNotification(scriptPath as NSString, channel: C.NOTIF_COMMANDVERBOSE)
88 | } else {
89 | postNotification(scriptPath as NSString, channel: C.NOTIF_COMMAND)
90 | }
91 |
92 | self.task.launch()
93 |
94 | pipe.fileHandleForReading.waitForDataInBackgroundAndNotify()
95 |
96 | NotificationCenter.default.addObserver(forName: NSNotification.Name.NSFileHandleDataAvailable, object: pipe.fileHandleForReading, queue: nil) { (notification) -> Void in
97 | DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async(execute: { () -> Void in
98 | data = pipe.fileHandleForReading.readDataToEndOfFile() // use .availabledata instead to stream from the console, pretty cool
99 | output = NSString(data: data, encoding: String.Encoding.utf8.rawValue)!
100 | DispatchQueue.main.async(execute: { () -> Void in
101 | var channel = ""
102 | if self.outputIsVerbose {
103 | channel = C.NOTIF_NEWDATAVERBOSE
104 | } else {
105 | channel = C.NOTIF_NEWDATA
106 | }
107 | self.postNotification(output, channel: channel)
108 | complete(output)
109 | })
110 | })
111 | }
112 |
113 |
114 | }
115 | }
116 |
--------------------------------------------------------------------------------
/AndroidTool/Styles.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Styles.swift
3 | // Shellpad/androidtool
4 | //
5 | // Created by Morten Just Petersen on 10/31/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class Styles: NSObject {
12 |
13 | override init() {
14 | super.init()
15 | }
16 |
17 | func terminalAtts() -> [String:AnyObject]{
18 | var atts = [String:AnyObject]()
19 | atts[NSForegroundColorAttributeName] = NSColor(red:0.671, green:0.671, blue:0.671, alpha:1)
20 | atts[NSFontAttributeName] = NSFont(name: "Monaco", size: 8.0)
21 | return atts
22 | }
23 |
24 | func commandAtts() -> [String:AnyObject]{
25 | var atts = [String:AnyObject]()
26 | atts[NSForegroundColorAttributeName] = NSColor(red:1, green:1, blue:1, alpha:1)
27 | atts[NSFontAttributeName] = NSFont(name: "Monaco", size: 8.0);
28 | return atts
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/AndroidTool/Take Bugreport.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | declare -a arr
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2 #
5 | adb=$thisdir/adb
6 |
7 |
8 | # --------------------
9 | #
10 | # Add your script below. When sending adb commands to the user-selected device, use "$adb -s $serial"
11 | #
12 | # --------------------
13 |
14 | TakeBugReport(){
15 | ldap=$(whoami)
16 | now=$(date +"%m-%d-%Y-%H-%M-%S")
17 | devicename=$($adb -s $serial shell getprop ro.product.name)
18 | finalFilename=$devicename-$ldap-$now.png
19 | finalFilename="${finalFilename//[$'\t\r\n ']}"
20 |
21 | $adb -s $serial bugreport > $finalFilename".txt"
22 | }
23 |
24 | mkdir -p ~/Desktop/AndroidTool
25 | cd ~/Desktop/AndroidTool
26 | TakeBugReport
27 | open . #opens the Android Tool folder in Finder after executing. Could be annoying
--------------------------------------------------------------------------------
/AndroidTool/TerminalOutputTextView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TerminalOutputTextView.swift
3 | // Shellpad/androidtool
4 | //
5 | // Created by Morten Just Petersen on 11/1/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class TerminalOutputTextView: NSTextView {
12 |
13 | required init?(coder: NSCoder) {
14 | super.init(coder: coder)
15 | setup()
16 | }
17 |
18 | func setup(){
19 | Swift.print("TerminalOutputTextView")
20 | font = NSFont(name: "Courier", size: 12)
21 | backgroundColor = NSColor(red:0.231, green:0.216, blue:0.251, alpha:1)
22 | textColor = NSColor(red:0.392, green:0.294, blue:0.890, alpha:1)
23 | startListening()
24 | }
25 |
26 | override func draw(_ dirtyRect: NSRect) {
27 | super.draw(dirtyRect)
28 | }
29 |
30 | func startListening(){
31 | NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: Constants.NOTIF_NEWDATA), object: nil, queue: nil) { (notif) -> Void in
32 | Swift.print("#mj.newData notif")
33 |
34 | DispatchQueue.main.async(execute: { () -> Void in
35 | let s = notif.object as! String
36 | self.append(s)
37 |
38 | })
39 | }
40 |
41 | NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: C.NOTIF_NEWDATAVERBOSE), object: nil, queue: nil) { (notif) -> Void in
42 | Swift.print("#mj.newData verbose notif")
43 |
44 | let wantsVerbose = UserDefaults.standard.bool(forKey: C.VERBOSEOUTPUT)
45 |
46 | if wantsVerbose {
47 | DispatchQueue.main.async(execute: { () -> Void in
48 | let s = notif.object as! String
49 |
50 | self.append(s)
51 |
52 | })
53 | }
54 | }
55 |
56 |
57 | NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: Constants.NOTIF_COMMAND), object: nil, queue: nil) { (notif) -> Void in
58 | Swift.print("#mj.newData notif")
59 | DispatchQueue.main.async(execute: { () -> Void in
60 | let s = notif.object as! String
61 | self.append("\n\n\(s)", atts: Styles().commandAtts())
62 | })
63 | }
64 |
65 |
66 | NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: Constants.NOTIF_COMMANDVERBOSE), object: nil, queue: nil) { (notif) -> Void in
67 | Swift.print("#mj.newDataverbose notif")
68 | let wantsVerbose = UserDefaults.standard.bool(forKey: C.VERBOSEOUTPUT)
69 | if wantsVerbose {
70 | DispatchQueue.main.async(execute: { () -> Void in
71 | let s = notif.object as! String
72 | self.append("\n\n\(s)", atts: Styles().commandAtts())
73 | })
74 | }
75 | }
76 |
77 | NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: Constants.NOTIF_NEWSESSION), object: nil, queue: nil) { (notif) -> Void in
78 | Swift.print("#mj.newSession notif")
79 | DispatchQueue.main.async(execute: { () -> Void in
80 | self.newSession()
81 | })
82 | }
83 | }
84 |
85 | func newSession(){
86 | append("\n\n----\n\n")
87 | }
88 |
89 | func append(_ appended: String, atts:[String:AnyObject] = Styles().terminalAtts()) {
90 | let s = NSAttributedString(string: "\n"+appended, attributes: atts)
91 | self.textStorage?.append(s)
92 | self.scrollToEndOfDocument(nil)
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/AndroidTool/WindowMoverScrollview.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WindowMoverScrollview.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/12/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class WindowMoverScrollview: NSScrollView {
12 |
13 |
14 | override var mouseDownCanMoveWindow:Bool {
15 | return true
16 | }
17 |
18 | override func draw(_ dirtyRect: NSRect) {
19 | super.draw(dirtyRect)
20 |
21 | // Drawing code here.
22 | }
23 |
24 | override func mouseDragged(with theEvent: NSEvent) {
25 | Swift.print("mouse dragged in windowmoverscrollwview")
26 | super.mouseDragged(with: theEvent)
27 | }
28 |
29 | override func mouseDown(with theEvent: NSEvent) {
30 | super.mouseDown(with: theEvent)
31 | }
32 |
33 | override func mouseUp(with theEvent: NSEvent) {
34 | Swift.print("mouse up")
35 | super.mouseUp(with: theEvent)
36 | }
37 |
38 | override func mouseEntered(with theEvent: NSEvent) {
39 | Swift.print("mouse entered")
40 | super.mouseEntered(with: theEvent)
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/AndroidTool/WindowMoverTableCellView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WindowMoverTableCellView.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/12/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class WindowMoverTableCellView: NSTableCellView {
12 |
13 | override func draw(_ dirtyRect: NSRect) {
14 | super.draw(dirtyRect)
15 |
16 | // Drawing code here.
17 | }
18 |
19 | override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
20 | return NSDragOperation.copy
21 | }
22 |
23 | override var mouseDownCanMoveWindow:Bool {
24 | return true
25 | }
26 |
27 | override func mouseUp(with theEvent: NSEvent) {
28 | Swift.print("mouse up")
29 | }
30 |
31 | override func mouseEntered(with theEvent: NSEvent) {
32 | Swift.print("mouse entered")
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/AndroidTool/WindowMoverView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WindowMoverView.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/12/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class WindowMoverView: NSView {
12 |
13 | override func register(forDraggedTypes newTypes: [String]) {
14 | Swift.print("$$ registering")
15 | let fileTypes = [
16 | ".apk"
17 | ]
18 | register(forDraggedTypes: fileTypes);
19 | }
20 |
21 | override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
22 | Swift.print("dragging entered")
23 | return NSDragOperation.copy
24 | }
25 |
26 | override func acceptsFirstMouse(for theEvent: NSEvent?) -> Bool {
27 | return true
28 | }
29 |
30 | override var acceptsFirstResponder: Bool {
31 | return true
32 | }
33 |
34 | override func draw(_ dirtyRect: NSRect) {
35 | super.draw(dirtyRect)
36 |
37 | // Drawing code here.
38 | }
39 |
40 | override var mouseDownCanMoveWindow:Bool {
41 | return true
42 | }
43 |
44 | override func mouseUp(with theEvent: NSEvent) {
45 | Swift.print("mouse up windowmoverview")
46 | super.mouseUp(with: theEvent)
47 | }
48 |
49 | override func mouseEntered(with theEvent: NSEvent) {
50 | Swift.print("mouse entered windowmoverivew")
51 | super.mouseEntered(with: theEvent)
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/AndroidTool/ZipHandler.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ZipHandler.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 12/7/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | protocol ZipHandlerDelegate {
12 | func zipHandlerDidStart()
13 | func zipHandlerDidFinish()
14 | }
15 |
16 | class ZipHandler: NSObject {
17 | var filepath:String!
18 | var delegate:ZipHandlerDelegate?
19 | var device:Device!
20 |
21 | init(filepath:String, device:Device){
22 | print(">>zip init ziphandler")
23 | super.init()
24 | self.filepath = filepath
25 | self.device = device
26 | }
27 |
28 | func flash(){
29 | print(">>zip flash")
30 | delegate?.zipHandlerDidStart()
31 | let shell = ShellTasker(scriptFile: "installZip")
32 | print("startin flashing")
33 | shell.run(arguments: [self.device.adbIdentifier!, self.filepath]) { (output) -> Void in
34 | print("done flashing")
35 | self.delegate?.zipHandlerDidFinish()
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/AndroidTool/aapt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/aapt
--------------------------------------------------------------------------------
/AndroidTool/adb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/adb
--------------------------------------------------------------------------------
/AndroidTool/convertMovieFiletoGif.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # convertMovieFiletoGif.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 5/7/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1
10 | inputFile=$3
11 | outputFile=$4
12 | scale=$5
13 | screenRecFolder=$6
14 |
15 | ConvertFile(){
16 | $thisdir/ffmpeg -i $inputFile -vf scale=iw*$scale:ih*$scale $outputFile
17 | }
18 |
19 | echo "###### $screenRecFolder"
20 | mkdir -p "$screenRecFolder"
21 | cd "$screenRecFolder"
22 |
23 | ConvertFile
24 |
--------------------------------------------------------------------------------
/AndroidTool/exitDemoMode.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # startDemoMode.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 11/16/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
11 | serial=$2
12 | adb=$thisdir/adb
13 |
14 | "$adb" -s $serial shell am broadcast -a com.android.systemui.demo -e command exit
--------------------------------------------------------------------------------
/AndroidTool/extractIconFromApk copy.sh:
--------------------------------------------------------------------------------
1 | aapt=$1
2 | apk=$2
3 |
4 | preview-android-icon () {
5 | iconFile=$($aapt d --values badging "$apk" | sed -n "/^application: /s/.*icon='\([^']*\).*/\1/p")
6 | echo "extracting $iconFile from $apk with $aapt"
7 | unzip -p $apk $iconFile > /tmp/icon.png
8 | open /tmp/icon.png
9 | }
10 |
11 | preview-android-icon
--------------------------------------------------------------------------------
/AndroidTool/extractIconFromApk.sh:
--------------------------------------------------------------------------------
1 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
2 | aapt="$thisdir/aapt"
3 | apk=$2
4 |
5 | preview-android-icon () {
6 | iconFile=$("$aapt" d --values badging "$apk" | sed -n "/^application: /s/.*icon='\([^']*\).*/\1/p")
7 | #echo "extracting $iconFile from $apk with $aapt"
8 | unzip -p $apk $iconFile > /tmp/icon.png
9 | echo "/tmp/icon.png"
10 | }
11 |
12 | preview-android-icon
--------------------------------------------------------------------------------
/AndroidTool/fastboot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/fastboot
--------------------------------------------------------------------------------
/AndroidTool/ffmpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/ffmpeg
--------------------------------------------------------------------------------
/AndroidTool/getApkInfo.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # getApkInfo.sh
4 | # Shellpad
5 | #
6 | # Created by Morten Just Petersen on 11/1/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 |
9 | echo "get apk info"
10 |
11 | thisdir=$1
12 | filename=$2
13 | aapt=$thisdir/aapt
14 |
15 | echo "$aapt" dump badging "$filename"
16 |
17 | "$aapt" dump badging "$filename"
--------------------------------------------------------------------------------
/AndroidTool/getCurrentActivityForIdentifier.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # getCurrentActivityForIdentifier.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 12/1/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | identifier=$2
11 | adb=$thisdir/adb
12 |
13 | $adb -s $identifier shell dumpsys activity recents | sed -n '1,/realActivity/s/realActivity=//p'
--------------------------------------------------------------------------------
/AndroidTool/getDetailsForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2
5 | adb=$thisdir/adb #Xcode
6 | #adb="adb" #CL
7 |
8 | declare -a arr
9 |
10 | GetDetails(){
11 | "$adb" -s $serial shell getprop
12 | }
13 |
14 | GetDetails
--------------------------------------------------------------------------------
/AndroidTool/getResolutionForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2
5 | adb=$thisdir/adb #Xcode
6 | #adb="adb" #CL
7 |
8 | declare -a arr
9 |
10 | GetResolution(){
11 | echo "doing this:-------"
12 | echo "$adb" -s $serial shell wm size
13 | echo "-----------"
14 |
15 | "$adb" -s $serial shell wm size
16 | }
17 |
18 | GetResolution
--------------------------------------------------------------------------------
/AndroidTool/getSerials.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # getSerials.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/23/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | adb=$thisdir/adb #Xcode
11 | #adb="adb" #CL
12 | let deviceCount=0
13 |
14 | declare -a arr
15 |
16 | GetSerials(){
17 | while read line
18 | do
19 | if [ -n "$line" ] && [ "`echo $line | awk '{print $2}'`" == "device" ]
20 | then
21 | let deviceCount=$deviceCount+1
22 | serial="`echo $line | awk '{print $1}'`"
23 |
24 | if (( deviceCount > 1 ))
25 | then
26 | serials=$serials";"
27 | fi
28 |
29 | serials=$serials$serial
30 | fi
31 | done < <("$adb" devices)
32 | echo $serials
33 | }
34 |
35 | GetSerials
--------------------------------------------------------------------------------
/AndroidTool/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/icon.png
--------------------------------------------------------------------------------
/AndroidTool/idevicescreenshot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/AndroidTool/idevicescreenshot
--------------------------------------------------------------------------------
/AndroidTool/installApkOnDevice.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # installApkOnDevice.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/24/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
11 | serial=$2
12 | apkPath=$3
13 |
14 | adb=$thisdir/adb
15 |
16 | "$adb" -s $serial install -r "$3"
--------------------------------------------------------------------------------
/AndroidTool/installObbForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ######################################################################
4 | #
5 | #
6 | # Obb script
7 | # Thanks, Farhad Khairzad!
8 | #
9 | #
10 | ######################################################################
11 |
12 | #Set up for AndroidTool
13 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
14 | serial=$2
15 | file=$3
16 | adb=$thisdir/adb
17 |
18 | #wiring up
19 | obb_type="main"
20 |
21 |
22 | #Set Script Name variable
23 | SCRIPT=`basename ${BASH_SOURCE[0]}`
24 | SVERSION='1.1b' #modified for AndroidTool
25 |
26 | #Set fonts for Help.
27 | #NORM=`tput sgr0`
28 | #BOLD=`tput bold`
29 | #REV=`tput smso`
30 |
31 |
32 | #NUMARGS=$#
33 | #file=$@
34 | #if [ $NUMARGS -eq 0 ]; then
35 | # HELP
36 | #fi
37 | #if [ $NUMARGS -eq 2 ]; then
38 | # file=$2
39 | #fi
40 | #if [ $NUMARGS -gt 2 ]; then
41 | # echo "Option not allowed. Use ${BOLD}$SCRIPT -h${NORM} to see the help documentation."
42 | #fi
43 |
44 | function MAIN_PROCESS {
45 | file_name=$(basename "$file")
46 | dir_name=$(dirname "$file")
47 |
48 | echo "0.01m ready to do stuff with $file"
49 | echo "0.m cd into $dir_name where we find $file_name"
50 | cd "$dir_name"
51 | echo "1.m file_name: $file_name"
52 |
53 | if [[ ${file_name:0:5} = "main." ]]; then
54 | pkg_name=$(echo $file_name | perl -nle 'm/([^main\.\d+].+?(?=.obb))/; print $1')
55 | echo 'Copying' $file_name 'to obb/'$pkg_name'/'
56 | "$adb" shell mkdir -p sdcard/Android/obb/$pkg_name
57 | "$adb" push $file sdcard/Android/obb/$pkg_name/
58 | elif [[ ${file_name:0:6} = "patch." ]]; then
59 | pkg_name=$(echo $file_name | perl -nle 'm/([^patch\.\d+].+?(?=.obb))/; print $1')
60 | echo 'Copying' $file_name 'to obb/'$pkg_name'/'
61 | "$adb" shell mkdir -p sdcard/Android/obb/$pkg_name
62 | "$adb" push $file sdcard/Android/obb/$pkg_name/
63 | else
64 | echo "2.m no indication of patch/main, using main"
65 | pkg_name=$(echo "$file_name" | perl -nle 'm/(^[^-]+)/; print $1')
66 | obb_build=$(echo "$file_name" | perl -nle 'm/(?<=\-)(.*?)(?=\.)/; print $1')
67 | new_name=$obb_type.$obb_build.$pkg_name.obb
68 | echo "3.m creating local temp folder with package name: .tmp-obb/$pkg_name"
69 | mkdir -p ".tmp-obb/$pkg_name"
70 | echo "4.m Copying $new_name to obb/$pkg_name/"
71 | cp "$file" ".tmp-obb/$pkg_name/$new_name"
72 | echo "5. creating directory on device: $adb shell mkdir -p sdcard/Android/obb/$pkg_name"
73 | "$adb" shell mkdir -p "sdcard/Android/obb/$pkg_name"
74 | echo "6. pushing file to device: $adb push .tmp-obb/$pkg_name/$new_name sdcard/Android/obb/$pkg_name/"
75 | "$adb" push ".tmp-obb/$pkg_name/$new_name" "sdcard/Android/obb/$pkg_name/"
76 | echo "7. removing local temp folder"
77 | rm -r .tmp-obb
78 | fi
79 | exit
80 | }
81 |
82 | function VERIFY_FILE {
83 | echo $file
84 | echo $FILE_EXT
85 | TEMPFILE=`basename $file`
86 | FILE_BASE=`echo "${TEMPFILE%.*}"` #file without extension
87 | FILE_EXT="${TEMPFILE##*.}" #file extension
88 |
89 | if [ -z "$file" ]; then
90 | echo "Select a .obb file"
91 | else
92 | if [ $FILE_EXT == "obb" ]; then
93 | MAIN_PROCESS
94 | else
95 | echo "Select a valid .obb file"
96 | fi
97 | fi
98 |
99 | exit
100 | }
101 | ### Start getopts code ###
102 |
103 | #Parse command line flags
104 | #If an option should be followed by an argument, it should be followed by a ":".
105 | #Notice there is no ":" after "h". The leading ":" suppresses error messages from
106 | #getopts. This is required to get my unrecognized option code to work.
107 |
108 | #obb_type="main"
109 |
110 | #while getopts :m:p:h opt; do
111 | # case $opt in
112 | # m) #set option "a"
113 | # obb_type="main"
114 | # ;;
115 | # p) #set option "b"
116 | # obb_type="patch"
117 | # ;;
118 | # h) #set option "b"
119 | # HELP
120 | # ;;
121 | # \?) #unrecognized option - show help
122 | # echo -e \\n"Option -${BOLD}$OPTARG${NORM} not allowed."
123 | # HELP
124 | # #If you just want to display a simple error message instead of the full
125 | # #help, remove the 2 lines above and uncomment the 2 lines below.
126 | # #echo -e "Use ${BOLD}$SCRIPT -h${NORM} to see the help documentation."\\n
127 | # #exit 2
128 | # ;;
129 | #
130 | # esac
131 | #done
132 |
133 | #if [ $# -eq 1 ] || [ $# -eq 2 ]; then
134 | # if [ ! -f $file ]; then
135 | # echo "File not found!"
136 | # else
137 | VERIFY_FILE
138 | # fi
139 | #fi
--------------------------------------------------------------------------------
/AndroidTool/installZip.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # installZip.sh
4 | # Shellpad
5 | #
6 | # Created by Morten Just Petersen on 11/1/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1
10 | serial=$2
11 | filename=$3
12 |
13 | fastboot=$1/fastboot
14 | adb=$1/adb
15 |
16 | echo "Flashing with fastboot"
17 |
18 | echo "$adb" -s $serial reboot-bootloader
19 | "$adb" -s $serial reboot-bootloader
20 |
21 | echo "$fastboot" -s $serial update "$filename"
22 | "$fastboot" -s $serial update "$filename"
--------------------------------------------------------------------------------
/AndroidTool/launchActivity.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # launchActivity.sh
4 | # Shellpad
5 | #
6 | # Created by Morten Just Petersen on 11/1/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 | # am start -n yourpackagename/.activityname
9 | # adb shell am start com.mortenjust.streamvsd/com.mortenjust.streamvsd.GridActivity
10 |
11 | thisdir=$1
12 | serial=$2
13 | packageAndActivity=$3
14 | adb=$thisdir/adb
15 |
16 | echo "$adb" -s $serial shell am start $packageAndActivity
17 | "$adb" -s $serial shell am start $packageAndActivity
--------------------------------------------------------------------------------
/AndroidTool/postProcessMovieForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # postprocessmovie.sh
4 | # Bugs
5 | #
6 | # Created by Morten Just Petersen on 4/10/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | #adb="/usr/local/bin/adb"
11 |
12 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
13 | serial=$2
14 | width=$3
15 | height=$4
16 | bitrate=$5 #carryover since this file shares arg structure with recordmovie
17 | screenRecFolder=$6
18 | generateGif=$7
19 |
20 | adb=$thisdir/adb
21 |
22 | deviceName=$("$adb" -s $serial shell getprop ro.product.name)
23 | buildId=$("$adb" -s $serial shell getprop ro.build.id)
24 | ldap=$(whoami)
25 | now=$(date +'%m%d%Y%H%M%S')
26 | finalFileName=$deviceName$buildId$ldap$now
27 | finalFileName="${finalFileName//[$'\t\r\n ']}"
28 |
29 | echo "###### $screenRecFolder"
30 | mkdir -p "$screenRecFolder"
31 | cd "$screenRecFolder"
32 |
33 |
34 | chara=$("$adb" -s $serial shell getprop ro.build.characteristics)
35 | if [[ $chara == *"watch"* ]]
36 |
37 | then # -- Watch ---
38 | echo 'Copying from watch...'
39 | "$adb" -s $serial pull /sdcard/screencapture.raw
40 | "$adb" -s $serial shell rm /sdcard/screencapture.raw
41 |
42 | echo '#Converting...'
43 |
44 | $thisdir/ffmpeg -f rawvideo -vcodec rawvideo -s $width"x"$height -pix_fmt rgb24 -r 10 -i screencapture.raw -an -c:v libx264 -pix_fmt yuv420p $finalFileName.mp4
45 |
46 | # $thisdir/ffmpeg -f rawvideo -vcodec rawvideo -pix_fmt rgb24 -r 10 -i screencapture.raw -an -c:v libx264 -pix_fmt yuv420p $finalFileName.mp4
47 |
48 | if [ "$generateGif" = true ] ; then
49 | echo 'Generating gif...'
50 | $thisdir/ffmpeg -i $finalFileName.mp4 $finalFileName.gif
51 | fi
52 |
53 | echo 'Cleaning up...'
54 | rm screencapture.raw
55 |
56 | else # -- Phone ---
57 | echo 'copying from phone...'
58 | "$adb" -s $serial pull /sdcard/capture.mp4
59 | mv capture.mp4 $finalFileName.mp4
60 |
61 | if [ "$generateGif" = true ] ; then
62 | echo 'Generating gif...'
63 | $thisdir/ffmpeg -i $finalFileName.mp4 $finalFileName.gif
64 | fi
65 |
66 | echo 'cleaning up'
67 | "$adb" -s $serial shell rm /sdcard/capture.mp4
68 | fi
69 |
70 | echo 'Opening file...'
71 | open $finalFileName.mp4
72 |
--------------------------------------------------------------------------------
/AndroidTool/previewPopoverViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // previewPopoverViewController.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 5/9/15.
6 | // Copyright (c) 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class previewPopoverViewController: NSViewController {
12 |
13 | override func viewDidLoad() {
14 | if #available(OSX 10.10, *) {
15 | super.viewDidLoad()
16 | } else {
17 | // Fallback on earlier versions
18 | }
19 | // Do view setup here.
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/AndroidTool/scriptsPopoverViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // scriptsPopoverViewController.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 4/26/15.
6 | // Copyright (c) 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 | // FIXME: comparison operators with optionals were removed from the Swift Standard Libary.
11 | // Consider refactoring the code to use the non-optional operators.
12 | fileprivate func < (lhs: T?, rhs: T?) -> Bool {
13 | switch (lhs, rhs) {
14 | case let (l?, r?):
15 | return l < r
16 | case (nil, _?):
17 | return true
18 | default:
19 | return false
20 | }
21 | }
22 |
23 | // FIXME: comparison operators with optionals were removed from the Swift Standard Libary.
24 | // Consider refactoring the code to use the non-optional operators.
25 | fileprivate func > (lhs: T?, rhs: T?) -> Bool {
26 | switch (lhs, rhs) {
27 | case let (l?, r?):
28 | return l > r
29 | default:
30 | return rhs < lhs
31 | }
32 | }
33 |
34 |
35 | @objc protocol UserScriptDelegate : class {
36 | func userScriptStarted()
37 | func userScriptEnded()
38 | func userScriptWantsSerial() -> String
39 | }
40 |
41 | class scriptsPopoverViewController: NSViewController {
42 | let buttonHeight:CGFloat = 30
43 |
44 | // accepted answer here http://stackoverflow.com/questions/26180268/interface-builder-iboutlet-and-protocols-for-delegate-and-datasource-in-swift
45 | @IBOutlet var delegate : UserScriptDelegate!
46 |
47 | let fileM = FileManager.default
48 |
49 | func setup(){
50 | let folder = Util().getSupportFolderScriptPath()
51 | let allScripts = Util().getFilesInScriptFolder(folder)
52 |
53 | if allScripts?.count > 0 {
54 | addScriptsToView(allScripts!, view: self.view)
55 | }
56 | }
57 |
58 |
59 | func addScriptsToView(_ scripts:[String], view:NSView){
60 | var i:CGFloat = 1
61 |
62 | view.frame.size.height = CGFloat(scripts.count) * (buttonHeight+3) + buttonHeight
63 |
64 | let folderButton = NSButton(frame: NSRect(x: 10.0, y: 3,
65 | width: view.bounds.width-15.0,
66 | height: buttonHeight))
67 | folderButton.image = NSImage(named: "revealFolder")
68 | folderButton.isBordered = false
69 | folderButton.action = #selector(revealScriptFolderClicked)
70 | folderButton.target = self
71 | view.addSubview(folderButton)
72 |
73 | for script in scripts {
74 | let scriptButton = NSButton(frame: NSRect(x: 10.0, y: (i*buttonHeight+3),
75 | width: view.bounds.width-15.0,
76 | height: buttonHeight))
77 |
78 | let friendlyScriptName = script.replacingOccurrences(of: ".sh", with: "")
79 | scriptButton.title = friendlyScriptName
80 | if #available(OSX 10.10.3, *) {
81 | scriptButton.setButtonType(NSButtonType.accelerator)
82 | } else {
83 | // Fallback on earlier versions
84 | }
85 | scriptButton.bezelStyle = NSBezelStyle.rounded
86 | scriptButton.action = #selector(runScriptClicked)
87 | scriptButton.target = self
88 |
89 | view.addSubview(scriptButton)
90 | i += 1
91 | }
92 | }
93 |
94 | func runScript(_ scriptPath:String){
95 | delegate.userScriptStarted()
96 | let serial:String = delegate.userScriptWantsSerial()
97 |
98 | print("ready to run on \(serial)")
99 |
100 | ShellTasker(scriptFile: scriptPath).run(arguments: ["\(serial)"], isUserScript: true) { (output) -> Void in
101 | self.delegate.userScriptEnded()
102 | }
103 | }
104 |
105 | func runScriptClicked(_ sender:NSButton){
106 | let scriptName = "\(sender.title).sh"
107 | let scriptPath = "\(Util().getSupportFolderScriptPath())/\(scriptName)"
108 | print("ready to run \(scriptPath)")
109 | runScript(scriptPath)
110 | }
111 |
112 | func revealScriptFolderClicked(_ sender:NSButton) {
113 | Util().revealScriptsFolder()
114 | }
115 |
116 | override func viewDidLoad() {
117 | if #available(OSX 10.10, *) {
118 | super.viewDidLoad()
119 | } else {
120 | // Fallback on earlier versions
121 | }
122 | // Do view setup here.
123 | }
124 |
125 | override func awakeFromNib() {
126 | setup()
127 | }
128 | }
129 |
--------------------------------------------------------------------------------
/AndroidTool/setDemoModeOptions.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # setDemoModeOptions.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 11/16/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
11 | serial=$2
12 | adb=$thisdir/adb
13 | settings=$3
14 | allcmds=""
15 |
16 | "$adb" -s $serial shell settings put global sysui_demo_allowed 1
17 | echo "$adb" -s $serial shell settings put global sysui_demo_allowed 1
18 |
19 | "$adb" -s $serial shell am broadcast -a com.android.systemui.demo -e command enter
20 | echo "$adb" -s $serial shell am broadcast -a com.android.systemui.demo -e command enter
21 |
22 | IFS='~' read -ra ADDR <<< "$settings"
23 | for command in "${ADDR[@]}"; do
24 | echo "$adb" -s $serial shell "am broadcast -a com.android.systemui.demo -e command $command"
25 | "$adb" -s $serial shell "am broadcast -a com.android.systemui.demo -e command $command"
26 | done
--------------------------------------------------------------------------------
/AndroidTool/startRecordingForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # startrecording.sh
4 | # Bugs
5 | #
6 | # Created by Morten Just Petersen on 4/10/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | serial=$2
11 | width=$3
12 | height=$4
13 | bitrate=$5
14 |
15 | adb=$thisdir/adb
16 |
17 | chara=$($adb -s $serial shell getprop ro.build.characteristics)
18 | if [[ $chara == *"watch"* ]]
19 | then
20 | echo "Recording from watch..."
21 | # Get resolution if no custom res was specified
22 | if [[ ! $width ]]
23 | then
24 | width=`"$adb" -s $serial shell dumpsys display | grep mDisplayWidth | awk -F '=' '{ print $2 }' | tr -d '\r\n'`
25 | fi
26 | if [[ ! $height ]]
27 | then
28 | height=`"$adb" -s $serial shell dumpsys display | grep mDisplayHeight | awk -F '=' '{ print $2 }' | tr -d '\r\n'`
29 | fi
30 | sizeopt=""
31 | # Put a --size option only if both params are available
32 | if [[ $width && $height ]]
33 | then
34 | sizeopt=${width}x${height}
35 | fi
36 |
37 | "$adb" -s $serial shell screenrecord --size $sizeopt --o raw-frames /sdcard/screencapture.raw
38 | else
39 | echo "Recording from phone..."
40 | orientation=$("$adb" -s $serial shell dumpsys input | grep 'SurfaceOrientation' | awk '{ print $2 }')
41 | if [[ "${orientation//[$'\t\r\n ']}" != "0" ]]
42 | then
43 | "$adb" -s $serial shell screenrecord --bit-rate $bitrate --verbose --size $height"x"$width /sdcard/capture.mp4 # > $1/reclog.txt
44 | else
45 | "$adb" -s $serial shell screenrecord --bit-rate $bitrate --verbose --size $width"x"$height /sdcard/capture.mp4 # > $1/reclog.txt
46 | fi
47 | fi
48 |
--------------------------------------------------------------------------------
/AndroidTool/takeScreenshotOfDeviceWithSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # takeScreenshotOfDeviceWithSerial.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/23/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | #!/bin/bash
10 |
11 | declare -a arr
12 |
13 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
14 | serial=$2
15 | screenshotFolder=$3
16 | activityName=$4
17 | adb=$thisdir/adb
18 |
19 | TakeScreenshot(){
20 | deviceName=$("$adb" -s $serial shell getprop ro.product.name)
21 | buildId=$("$adb" -s $serial shell getprop ro.build.id)
22 | ldap=$(whoami)
23 | now=$(date +'%m%d%Y%H%M%S')
24 | if [ -n "$activityName" ]; then
25 | finalFileName=$activityName-$now.png
26 | else
27 | finalFileName=$deviceName$buildId$ldap$now.png
28 | fi
29 | finalFileName="${finalFileName//[$'\t\r\n ']}"
30 | echo "Taking screenshot of $serial"
31 |
32 | "$adb" -s $serial shell screencap -p /sdcard/$finalFileName
33 | "$adb" -s $serial pull /sdcard/$finalFileName
34 | "$adb" -s $serial shell rm /sdcard/$finalFileName
35 |
36 | open $finalFileName
37 | }
38 |
39 | echo "###### $screenshotFolder"
40 | mkdir -p "$screenshotFolder"
41 | cd "$screenshotFolder"
42 | TakeScreenshot
--------------------------------------------------------------------------------
/AndroidTool/takeScreenshotOfDeviceWithUUID.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # takeScreenshotForDeviceWithUUID.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 5/4/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 | imobile=$1
9 | uuid=$2
10 | screenshotFolder=$3
11 |
12 | now=$(date +'%m%d%Y%H%M%S')
13 | ldap=$(whoami)
14 | finalFilename=iOS$ldap$now.png #todo: we could pass iosversion and model as $3. It's in the data model
15 | echo "ready to shoot to $finalFilename"
16 |
17 | TakeScreenshot(){
18 | export DYLD_LIBRARY_PATH=$imobile
19 | $imobile/idevicescreenshot -u $uuid rawiosshot.tiff
20 | sips -s format png rawiosshot.tiff --out $finalFilename
21 | rm rawiosshot.tiff
22 | open $finalFilename
23 | }
24 |
25 | echo "###### $screenshotFolder"
26 | mkdir -p "$screenshotFolder"
27 | cd "$screenshotFolder"
28 | TakeScreenshot
--------------------------------------------------------------------------------
/AndroidTool/uninstallPackageOnDevice.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # uninstallPackageOnDevice.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 12/5/15.
7 | # Copyright © 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | serial=$2
11 | packageName=$3
12 |
13 | adb=$thisdir/adb
14 |
15 |
16 | # uninstall -k ..would keep cache and data files
17 | echo "$adb" -s $serial uninstall -r "$3"
18 | "$adb" -s $serial uninstall "$3"
--------------------------------------------------------------------------------
/AndroidToolTests/AndroidToolTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AndroidToolTests.swift
3 | // AndroidToolTests
4 | //
5 | // Created by Morten Just Petersen on 4/22/15.
6 | // Copyright (c) 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 | import XCTest
11 |
12 | class AndroidToolTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 | }
18 |
19 | override func tearDown() {
20 | // Put teardown code here. This method is called after the invocation of each test method in the class.
21 | super.tearDown()
22 | }
23 |
24 | func testExample() {
25 | // This is an example of a functional test case.
26 | XCTAssert(true, "Pass")
27 | }
28 |
29 | func testPerformanceExample() {
30 | // This is an example of a performance test case.
31 | self.measure() {
32 | // Put the code you want to measure the time of here.
33 | }
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/AndroidToolTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Demos/dualscreenshot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/dualscreenshot.gif
--------------------------------------------------------------------------------
/Demos/installapk.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/installapk.gif
--------------------------------------------------------------------------------
/Demos/iosandandroid.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/iosandandroid.gif
--------------------------------------------------------------------------------
/Demos/iosscreenrecording.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/iosscreenrecording.gif
--------------------------------------------------------------------------------
/Demos/iosscreenshot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/iosscreenshot.gif
--------------------------------------------------------------------------------
/Demos/phonerecording.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/phonerecording.gif
--------------------------------------------------------------------------------
/Demos/phonerecordingbig.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/phonerecordingbig.gif
--------------------------------------------------------------------------------
/Demos/plugging in.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/plugging in.gif
--------------------------------------------------------------------------------
/Demos/scriptsfolder.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/Demos/scriptsfolder.gif
--------------------------------------------------------------------------------
/PreferencesWindowController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PreferencesWindowController.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 5/1/15.
6 | // Copyright (c) 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class PreferencesWindowController: NSWindowController {
12 |
13 |
14 | @IBAction func screenshotFolderClicked(_ sender: AnyObject) {
15 | selectFolder("Screenshots", message: "Save screenshots in this folder", defaultsPath: "screenshotsFolder")
16 | }
17 |
18 | @IBAction func screenRecordingFolderClicked(_ sender: AnyObject) {
19 |
20 | selectFolder("Screen recordings", message: "Save recordings in this folder", defaultsPath: "screenRecordingsFolder")
21 | }
22 |
23 |
24 | override func windowDidLoad() {
25 | super.windowDidLoad()
26 | // all bindings are belong to IB
27 | }
28 |
29 |
30 |
31 | func selectFolder(_ title:String, message:String, defaultsPath:String){
32 | let openPanel = NSOpenPanel();
33 | openPanel.title = title
34 | openPanel.message = message
35 | openPanel.showsResizeIndicator=true;
36 | openPanel.canChooseDirectories = true;
37 | openPanel.canChooseFiles = false;
38 | openPanel.allowsMultipleSelection = false;
39 | openPanel.canCreateDirectories = true;
40 | openPanel.begin { (result) -> Void in
41 | if(result == NSFileHandlingPanelOKButton){
42 | let path = openPanel.url!.path
43 | print("selected folder is \(path), saving to \(defaultsPath)");
44 | let ud = UserDefaults.standard
45 | ud.setValue(path, forKey: defaultsPath)
46 | }
47 | }
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Android tool for Mac
2 |
3 | ## Download
4 | **[Download the latest version here](https://github.com/mortenjust/androidtool-mac/releases/)**
5 |
6 | * Copy AndroidTool.app to your Applications folder
7 | * Right click AndroidTool and choose Open
8 |
9 | To install using [homebrew-cask](http://caskroom.io/), run `brew cask install androidtool` in the terminal.
10 |
11 | ## What's this?
12 |
13 |
14 | Android tool lets you do common Android designer and developer tasks in one click:
15 | * Take screenshots
16 | * Take screen videos
17 | * Install (sideload) APKs without the Play Store
18 | * Take bug reports
19 | * Use common scripts
20 | * Do all of the above on all devices connected to your Mac, in one click
21 |
22 | ## Recording video
23 |
24 |
25 | # Requirements
26 | * MacOS 10.9 Mavericks for Android features
27 | * MacOS 10.10 Yosemite for iOS features
28 | * Android 4.4 or newer for screen recording
29 | * Android 4.3 or newer for screenshots (could work on older devices, please report)
30 | * No Android or iOS SDK required (whaat)
31 |
32 | Android Tool outputs both mp4 and an animated gif. The animated gif can be placed in a Google Docs document or an email.
33 |
34 | ## Installing apps
35 |
36 |
37 | Double click any APK file on your hard drive and Android Tool pops up asking you onto which device you want to install it.
38 |
39 | ## Plain old screenshots
40 |
41 |
42 | Take screenshots of one or all devices connected to your mac - in one click, or by pressing cmd-shift-S
43 |
44 | ## Your own scripts
45 |
46 |
47 | Add your own perfect bash shell scripts to the scripts folder and execute them on a single device, or all devices connected to your Mac. See the example script in the scripts folder how to target a the user-selected device.
48 |
49 | ## Questions?
50 | * Check the FAQ or open an issue
51 | * Follow me on Twitter or check my blog for updates
52 |
53 | ## Thanks
54 |
55 | ### Farhad Khairzad
56 | For the OBB installer script
57 |
58 | ### FFmpeg
59 | This software uses code of FFmpeg licensed under the LGPLv2.1 and its source can be downloaded here
60 |
61 | ### ImageMagick
62 | Licensed under the ImageMagick License (the "License"); you may not use
63 | this file except in compliance with the License. You may obtain a copy
64 | of the License at
65 |
66 | http://www.imagemagick.org/script/license.php
67 |
68 | Unless required by applicable law or agreed to in writing, software
69 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
70 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
71 | License for the specific language governing permissions and limitations
72 | under the License.
73 |
--------------------------------------------------------------------------------
/StatusTextField.swift:
--------------------------------------------------------------------------------
1 | //
2 | // StatusTextField.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/24/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class StatusTextField: NSTextField {
12 |
13 | override func draw(_ dirtyRect: NSRect) {
14 | super.draw(dirtyRect)
15 |
16 | // Drawing code here.
17 | }
18 |
19 | required init?(coder: NSCoder) {
20 | super.init(coder: coder)
21 | setup()
22 | }
23 |
24 | func setup(){
25 | wantsLayer = true
26 | }
27 |
28 |
29 |
30 | func animateIn(_ completion:@escaping ()->Void?){
31 |
32 | let moveTo = (layer?.frame.origin.y)! - 5
33 | let move = CABasicAnimation(keyPath: "position.y")
34 | move.toValue = moveTo
35 | move.duration = 0.2
36 |
37 | move.isRemovedOnCompletion = true
38 | move.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
39 |
40 | let fade = CABasicAnimation(keyPath: "opacity")
41 | fade.fromValue = 0
42 | fade.toValue = 1
43 | fade.duration = 0.2
44 | fade.isRemovedOnCompletion = true
45 | fade.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
46 |
47 | CATransaction.begin()
48 | CATransaction.setCompletionBlock { () -> Void in
49 | completion()
50 | }
51 |
52 | layer?.add(fade, forKey: "basicOpacity")
53 | layer?.opacity = 1
54 | layer?.add(move, forKey: "basicMove")
55 | layer?.frame.origin.y = moveTo
56 |
57 | CATransaction.commit()
58 |
59 |
60 | }
61 |
62 |
63 | func animateOut(_ completion:@escaping ()->Void){
64 | let moveTo = (layer?.frame.origin.y)! + 5
65 | let move = CABasicAnimation(keyPath: "position.y")
66 | move.toValue = moveTo
67 | move.duration = 0.2
68 | move.isRemovedOnCompletion = true
69 | move.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
70 |
71 | let fade = CABasicAnimation(keyPath: "opacity")
72 | fade.fromValue = 1
73 | fade.toValue = 0
74 | fade.isRemovedOnCompletion = true
75 | fade.duration = 0.2
76 | fade.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
77 |
78 | CATransaction.begin()
79 | CATransaction.setCompletionBlock { () -> Void in
80 | completion()
81 | }
82 |
83 | layer?.add(fade, forKey: "basicOpacity")
84 | layer?.opacity = 0
85 | layer?.add(move, forKey: "basicMove")
86 | layer?.frame.origin.y = moveTo
87 |
88 | CATransaction.commit()
89 | }
90 |
91 |
92 | func setText(_ text:String, shouldFadeOut:Bool = true){
93 | animateOut { () -> Void in
94 | self.stringValue = text
95 |
96 | if shouldFadeOut {
97 | self.animateIn { () -> Void? in
98 | self.slowlyDecay()
99 | }
100 | }
101 |
102 | }
103 | }
104 |
105 |
106 | func slowlyDecay(){
107 | wantsLayer = true
108 | let anim = CABasicAnimation(keyPath: "opacity")
109 | anim.fromValue = 1
110 | anim.toValue = 0
111 | anim.duration = 60 //* 5 // 5 mins
112 | self.layer?.add(anim, forKey: "opacity")
113 | alphaValue = 0
114 | }
115 |
116 | }
117 |
--------------------------------------------------------------------------------
/UX/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/.DS_Store
--------------------------------------------------------------------------------
/UX/androidTool.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/androidTool.sketch
--------------------------------------------------------------------------------
/UX/exports/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/.DS_Store
--------------------------------------------------------------------------------
/UX/exports/androidlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/androidlogo.png
--------------------------------------------------------------------------------
/UX/exports/androidlogo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/androidlogo@2x.png
--------------------------------------------------------------------------------
/UX/exports/androidlogo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/androidlogo@3x.png
--------------------------------------------------------------------------------
/UX/exports/dragInvite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/dragInvite.png
--------------------------------------------------------------------------------
/UX/exports/dragInvite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/dragInvite@2x.png
--------------------------------------------------------------------------------
/UX/exports/dragInvite@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/dragInvite@3x.png
--------------------------------------------------------------------------------
/UX/exports/gradientedbutton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/gradientedbutton.png
--------------------------------------------------------------------------------
/UX/exports/gradientedbutton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/gradientedbutton@2x.png
--------------------------------------------------------------------------------
/UX/exports/gradientedbutton@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/gradientedbutton@3x.png
--------------------------------------------------------------------------------
/UX/exports/loaderButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/loaderButton.png
--------------------------------------------------------------------------------
/UX/exports/loaderButton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/loaderButton@2x.png
--------------------------------------------------------------------------------
/UX/exports/loaderButton@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/loaderButton@3x.png
--------------------------------------------------------------------------------
/UX/exports/loaderButtonFaded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/loaderButtonFaded.png
--------------------------------------------------------------------------------
/UX/exports/loaderButtonFaded@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/loaderButtonFaded@2x.png
--------------------------------------------------------------------------------
/UX/exports/loaderButtonFaded@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/loaderButtonFaded@3x.png
--------------------------------------------------------------------------------
/UX/exports/logogoogle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/logogoogle.png
--------------------------------------------------------------------------------
/UX/exports/logogoogle@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/logogoogle@2x.png
--------------------------------------------------------------------------------
/UX/exports/logogoogle@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/logogoogle@3x.png
--------------------------------------------------------------------------------
/UX/exports/logotagheuer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/logotagheuer.png
--------------------------------------------------------------------------------
/UX/exports/logotagheuer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/logotagheuer@2x.png
--------------------------------------------------------------------------------
/UX/exports/logotagheuer@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/exports/logotagheuer@3x.png
--------------------------------------------------------------------------------
/UX/testapp.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/UX/testapp.apk
--------------------------------------------------------------------------------
/WIndowMoverImageView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WIndowMoverImageView.swift
3 | // AndroidTool
4 | //
5 | // Created by Morten Just Petersen on 11/13/15.
6 | // Copyright © 2015 Morten Just Petersen. All rights reserved.
7 | //
8 |
9 | import Cocoa
10 |
11 | class WindowMoverImageView: NSImageView {
12 |
13 | override func draw(_ dirtyRect: NSRect) {
14 | super.draw(dirtyRect)
15 |
16 | // Drawing code here.
17 | }
18 |
19 | override var mouseDownCanMoveWindow:Bool {
20 | return true
21 | }
22 |
23 |
24 |
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/binaries/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/.DS_Store
--------------------------------------------------------------------------------
/binaries/121/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/.DS_Store
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftAppKit.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftAppKit.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftCore.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftCore.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftCoreAudio.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftCoreAudio.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftCoreGraphics.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftCoreGraphics.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftDarwin.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftDarwin.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftDispatch.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftDispatch.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftFoundation.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftFoundation.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftObjectiveC.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftObjectiveC.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftQuartzCore.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftQuartzCore.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftSecurity.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Frameworks/libswiftSecurity.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 14D136
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleDocumentTypes
10 |
11 |
12 | CFBundleTypeExtensions
13 |
14 | apk
15 |
16 | CFBundleTypeIconFile
17 | ApkIcon
18 | CFBundleTypeName
19 | apk
20 | CFBundleTypeRole
21 | Viewer
22 | LSHandlerRank
23 | Default
24 | LSTypeIsPackage
25 | 1
26 |
27 |
28 | CFBundleExecutable
29 | AndroidTool
30 | CFBundleIconFile
31 | AppIcon
32 | CFBundleIdentifier
33 | com.mortenjust.AndroidTool
34 | CFBundleInfoDictionaryVersion
35 | 6.0
36 | CFBundleName
37 | AndroidTool
38 | CFBundlePackageType
39 | APPL
40 | CFBundleShortVersionString
41 | 1.21
42 | CFBundleSignature
43 | ????
44 | CFBundleVersion
45 | 9
46 | DTCompiler
47 | com.apple.compilers.llvm.clang.1_0
48 | DTPlatformBuild
49 | 6D570
50 | DTPlatformVersion
51 | GM
52 | DTSDKBuild
53 | 14D125
54 | DTSDKName
55 | macosx10.10
56 | DTXcode
57 | 0630
58 | DTXcodeBuild
59 | 6D570
60 | LSApplicationCategoryType
61 |
62 | LSMinimumSystemVersion
63 | 10.9
64 | NSHumanReadableCopyright
65 | Copyright © 2015 Morten Just Petersen. All rights reserved.
66 | NSMainNibFile
67 | MainMenu
68 | NSPrincipalClass
69 | NSApplication
70 | UTExportedTypeDeclarations
71 |
72 |
73 | CFBundleTypeExtensions
74 |
75 | apk
76 |
77 | CFBundleTypeIconFile
78 | ApkIcon
79 | CFBundleTypeName
80 | apk
81 | CFBundleTypeRole
82 | Viewer
83 | LSHandlerRank
84 | Default
85 | LSTypeIsPackage
86 | 1
87 | UTTypeDescription
88 | Android Application
89 | UTTypeIconFile
90 | ApkIcon
91 | UTTypeIdentifier
92 | com.mortenjust.AndroidTool.app
93 | UTTypeTagSpecification
94 |
95 | public.filename-extension
96 |
97 | apk
98 |
99 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/MacOS/AndroidTool:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/MacOS/AndroidTool
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/ApkIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/ApkIcon.icns
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/AppIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/AppIcon.icns
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/Assets.car:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/Assets.car
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/Base.lproj/MainMenu.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/Base.lproj/MainMenu.nib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/DevicePickerViewController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/DevicePickerViewController.nib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/DeviceViewController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/DeviceViewController.nib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/MasterViewController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/MasterViewController.nib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/PreferencesWindowController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/PreferencesWindowController.nib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/Take Bugreport.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | declare -a arr
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2 #
5 | adb=$thisdir/adb
6 |
7 |
8 | # --------------------
9 | #
10 | # Add your script below. When sending adb commands to the user-selected device, use "$adb -s $serial"
11 | #
12 | # --------------------
13 |
14 | TakeBugReport(){
15 | ldap=$(whoami)
16 | now=$(date +"%m-%d-%Y-%H-%M-%S")
17 | devicename=$($adb -s $serial shell getprop ro.product.name)
18 | finalFilename=$devicename-$ldap-$now.png
19 | finalFilename="${finalFilename//[$'\t\r\n ']}"
20 |
21 | $adb -s $serial bugreport > $finalFilename".txt"
22 | }
23 |
24 | mkdir -p ~/Desktop/AndroidTool
25 | cd ~/Desktop/AndroidTool
26 | TakeBugReport
27 | open . #opens the Android Tool folder in Finder after executing. Could be annoying
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/adb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/adb
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/convertMovieFiletoGif.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # convertMovieFiletoGif.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 5/7/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1
10 | inputFile=$3
11 | outputFile=$4
12 | scale=$5
13 |
14 | TakeScreenshot(){
15 | $thisdir/ffmpeg -i $inputFile -vf scale=iw*$scale:ih*$scale $outputFile
16 | }
17 |
18 | mkdir -p ~/Desktop/AndroidTool
19 | cd ~/Desktop/AndroidTool
20 | TakeScreenshot
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/ffmpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/ffmpeg
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/getDetailsForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2
5 | adb=$thisdir/adb #Xcode
6 | #adb="adb" #CL
7 |
8 | declare -a arr
9 |
10 | GetDetails(){
11 | $adb -s $serial shell getprop
12 | }
13 |
14 | GetDetails
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/getResolutionForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2
5 | adb=$thisdir/adb #Xcode
6 | #adb="adb" #CL
7 |
8 | declare -a arr
9 |
10 | GetResolution(){
11 | $adb -s $serial shell wm size
12 | }
13 |
14 | GetResolution
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/getSerials.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # getSerials.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/23/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | adb=$thisdir/adb #Xcode
11 | #adb="adb" #CL
12 | let deviceCount=0
13 |
14 | declare -a arr
15 |
16 | GetSerials(){
17 | while read line
18 | do
19 | if [ -n "$line" ] && [ "`echo $line | awk '{print $2}'`" == "device" ]
20 | then
21 | let deviceCount=$deviceCount+1
22 | serial="`echo $line | awk '{print $1}'`"
23 |
24 | if (( deviceCount > 1 ))
25 | then
26 | serials=$serials";"
27 | fi
28 |
29 | serials=$serials$serial
30 | fi
31 | done < <($adb devices)
32 | echo $serials
33 | echo $serials > deviceslog.txt
34 | }
35 |
36 | GetSerials
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/idevicescreenshot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/idevicescreenshot
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/installApkOnDevice.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # installApkOnDevice.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/24/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
11 | serial=$2
12 | apkPath=$3
13 | adb=$thisdir/adb
14 |
15 | $adb -s $serial install -r "$3" > ~/Desktop/installog.txt
16 |
17 | #open $thisdir/installog.txt
18 | # > $thisdir/installlog.txt
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libimobiledevice.4.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libimobiledevice.4.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libosxfuse_i32.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libosxfuse_i32.2.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libosxfuse_i64.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libosxfuse_i64.2.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libplist.1.1.10.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libplist.1.1.10.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libplist.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libplist.2.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libusbmuxd.1.0.8.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libusbmuxd.1.0.8.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libusbmuxd.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libusbmuxd.2.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libxml2.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libxml2.2.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/libzip.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool.app/Contents/Resources/libzip.2.dylib
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/postProcessMovieForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # postprocessmovie.sh
4 | # Bugs
5 | #
6 | # Created by Morten Just Petersen on 4/10/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | #adb="/usr/local/bin/adb"
11 |
12 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
13 | serial=$2
14 | width=$3
15 | height=$4
16 | adb=$thisdir/adb
17 |
18 | deviceName=$($adb -s $serial shell getprop ro.product.name)
19 | buildId=$($adb -s $serial shell getprop ro.build.id)
20 | ldap=$(whoami)
21 | now=$(date +'%m%d%Y%H%M%S')
22 | finalFileName=$deviceName$buildId$ldap$now
23 | finalFileName="${finalFileName//[$'\t\r\n ']}"
24 |
25 | mkdir -p ~/Desktop/AndroidTool
26 | cd ~/Desktop/AndroidTool
27 |
28 | chara=$($adb -s $serial shell getprop ro.build.characteristics)
29 | if [[ $chara == *"watch"* ]]
30 |
31 | then # -- Watch ---
32 | echo 'Copying from watch...'
33 | $adb -s $serial pull /sdcard/screencapture.raw
34 | $adb -s $serial shell rm /sdcard/screencapture.raw
35 |
36 | echo '#Converting...'
37 |
38 | $thisdir/ffmpeg -f rawvideo -vcodec rawvideo -s $width"x"$height -pix_fmt rgb24 -r 10 -i screencapture.raw -an -c:v libx264 -pix_fmt yuv420p $finalFileName.mp4
39 |
40 | # $thisdir/ffmpeg -f rawvideo -vcodec rawvideo -pix_fmt rgb24 -r 10 -i screencapture.raw -an -c:v libx264 -pix_fmt yuv420p $finalFileName.mp4
41 |
42 |
43 | $thisdir/ffmpeg -i $finalFileName.mp4 $finalFileName.gif
44 |
45 | echo 'Cleaning up...'
46 | rm screencapture.raw
47 |
48 | else # -- Phone ---
49 | echo 'copying from phone...'
50 | $adb -s $serial pull /sdcard/capture.mp4
51 | mv capture.mp4 $finalFileName.mp4
52 | $thisdir/ffmpeg -i $finalFileName.mp4 $finalFileName.gif
53 |
54 | echo 'cleaning up'
55 | $adb -s $serial shell rm /sdcard/capture.mp4
56 | fi
57 |
58 | echo 'Opening file...'
59 | open $finalFileName.mp4
60 |
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/startRecordingForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # startrecording.sh
4 | # Bugs
5 | #
6 | # Created by Morten Just Petersen on 4/10/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | serial=$2
11 | width=$3
12 | height=$4
13 | bitrate=$5
14 |
15 | adb=$thisdir/adb
16 |
17 | chara=$($adb -s $serial shell getprop ro.build.characteristics)
18 | if [[ $chara == *"watch"* ]]
19 | then
20 | echo "Recording from watch..."
21 | $adb -s $serial shell screenrecord --o raw-frames /sdcard/screencapture.raw
22 | else
23 | echo "Recording from phone..."
24 | orientation=$($adb -s $serial shell dumpsys input | grep 'SurfaceOrientation' | awk '{ print $2 }')
25 | if [[ "${orientation//[$'\t\r\n ']}" != "0" ]]
26 | then
27 | $adb -s $serial shell screenrecord --bit-rate $bitrate --verbose --size $height"x"$width /sdcard/capture.mp4 # > $1/reclog.txt
28 | else
29 | $adb -s $serial shell screenrecord --bit-rate $bitrate --verbose --size $width"x"$height /sdcard/capture.mp4 # > $1/reclog.txt
30 | fi
31 | fi
32 |
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/takeScreenshotOfDeviceWithSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # takeScreenshotOfDeviceWithSerial.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/23/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | #!/bin/bash
10 |
11 | declare -a arr
12 |
13 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
14 | serial=$2
15 | adb=$thisdir/adb
16 |
17 | TakeScreenshot(){
18 | deviceName=$($adb -s $serial shell getprop ro.product.name)
19 | buildId=$($adb -s $serial shell getprop ro.build.id)
20 | ldap=$(whoami)
21 | now=$(date +'%m%d%Y%H%M%S')
22 | finalFileName=$deviceName$buildId$ldap$now.png
23 | finalFileName="${finalFileName//[$'\t\r\n ']}"
24 | echo "Taking screenshot of $serial"
25 |
26 | $adb -s $serial shell screencap -p /sdcard/$finalFileName
27 | $adb -s $serial pull /sdcard/$finalFileName
28 | $adb -s $serial shell rm /sdcard/$finalFileName
29 |
30 | open $finalFileName
31 | }
32 |
33 | mkdir -p ~/Desktop/AndroidTool
34 | cd ~/Desktop/AndroidTool
35 | TakeScreenshot
--------------------------------------------------------------------------------
/binaries/121/AndroidTool.app/Contents/Resources/takeScreenshotOfDeviceWithUUID.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # takeScreenshotForDeviceWithUUID.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 5/4/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 | imobile=$1
9 | uuid=$2
10 |
11 | now=$(date +'%m%d%Y%H%M%S')
12 | ldap=$(whoami)
13 | finalFilename=iOS$ldap$now.png #todo: we could pass iosversion and model as $3. It's in the data model
14 | echo "ready to shoot to $finalFilename"
15 |
16 | TakeScreenshot(){
17 | export DYLD_LIBRARY_PATH=$imobile
18 | $imobile/idevicescreenshot -u $uuid rawiosshot.tiff
19 | sips -s format png rawiosshot.tiff --out $finalFilename
20 | rm rawiosshot.tiff
21 | open $finalFilename
22 | }
23 |
24 | mkdir -p ~/Desktop/AndroidTool
25 | cd ~/Desktop/AndroidTool
26 | TakeScreenshot
--------------------------------------------------------------------------------
/binaries/121/AndroidTool121.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/121/AndroidTool121.zip
--------------------------------------------------------------------------------
/binaries/AndroidTool-io2.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool-io2.zip
--------------------------------------------------------------------------------
/binaries/AndroidTool-ios.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool-ios.zip
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftAppKit.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftAppKit.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftCore.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftCore.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftCoreAudio.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftCoreAudio.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftCoreGraphics.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftCoreGraphics.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftDarwin.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftDarwin.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftDispatch.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftDispatch.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftFoundation.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftFoundation.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftObjectiveC.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftObjectiveC.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftQuartzCore.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftQuartzCore.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Frameworks/libswiftSecurity.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Frameworks/libswiftSecurity.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 14D136
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleDocumentTypes
10 |
11 |
12 | CFBundleTypeExtensions
13 |
14 | apk
15 |
16 | CFBundleTypeIconFile
17 | ApkIcon
18 | CFBundleTypeName
19 | apk
20 | CFBundleTypeRole
21 | Viewer
22 | LSHandlerRank
23 | Default
24 | LSTypeIsPackage
25 | 1
26 |
27 |
28 | CFBundleExecutable
29 | AndroidTool
30 | CFBundleIconFile
31 | AppIcon
32 | CFBundleIdentifier
33 | com.mortenjust.AndroidTool
34 | CFBundleInfoDictionaryVersion
35 | 6.0
36 | CFBundleName
37 | AndroidTool
38 | CFBundlePackageType
39 | APPL
40 | CFBundleShortVersionString
41 | 1.2
42 | CFBundleSignature
43 | ????
44 | CFBundleVersion
45 | 8
46 | DTCompiler
47 | com.apple.compilers.llvm.clang.1_0
48 | DTPlatformBuild
49 | 6D570
50 | DTPlatformVersion
51 | GM
52 | DTSDKBuild
53 | 14D125
54 | DTSDKName
55 | macosx10.10
56 | DTXcode
57 | 0630
58 | DTXcodeBuild
59 | 6D570
60 | LSApplicationCategoryType
61 |
62 | LSMinimumSystemVersion
63 | 10.9
64 | NSHumanReadableCopyright
65 | Copyright © 2015 Morten Just Petersen. All rights reserved.
66 | NSMainNibFile
67 | MainMenu
68 | NSPrincipalClass
69 | NSApplication
70 | UTExportedTypeDeclarations
71 |
72 |
73 | CFBundleTypeExtensions
74 |
75 | apk
76 |
77 | CFBundleTypeIconFile
78 | ApkIcon
79 | CFBundleTypeName
80 | apk
81 | CFBundleTypeRole
82 | Viewer
83 | LSHandlerRank
84 | Default
85 | LSTypeIsPackage
86 | 1
87 | UTTypeDescription
88 | Android Application
89 | UTTypeIconFile
90 | ApkIcon
91 | UTTypeIdentifier
92 | com.mortenjust.AndroidTool.app
93 | UTTypeTagSpecification
94 |
95 | public.filename-extension
96 |
97 | apk
98 |
99 |
100 |
101 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/MacOS/AndroidTool:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/MacOS/AndroidTool
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/MacOS/deviceslog.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/PkgInfo:
--------------------------------------------------------------------------------
1 | APPL????
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/ApkIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/ApkIcon.icns
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/AppIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/AppIcon.icns
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/Assets.car:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/Assets.car
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/Base.lproj/MainMenu.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/Base.lproj/MainMenu.nib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/DevicePickerViewController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/DevicePickerViewController.nib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/DeviceViewController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/DeviceViewController.nib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/MasterViewController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/MasterViewController.nib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/PreferencesWindowController.nib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/PreferencesWindowController.nib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/Take Bugreport.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | declare -a arr
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2 #
5 | adb=$thisdir/adb
6 |
7 |
8 | # --------------------
9 | #
10 | # Add your script below. When sending adb commands to the user-selected device, use "$adb -s $serial"
11 | #
12 | # --------------------
13 |
14 | TakeBugReport(){
15 | ldap=$(whoami)
16 | now=$(date +"%m-%d-%Y-%H-%M-%S")
17 | devicename=$($adb -s $serial shell getprop ro.product.name)
18 | finalFilename=$devicename-$ldap-$now.png
19 | finalFilename="${finalFilename//[$'\t\r\n ']}"
20 |
21 | $adb -s $serial bugreport > $finalFilename".txt"
22 | }
23 |
24 | mkdir -p ~/Desktop/AndroidTool
25 | cd ~/Desktop/AndroidTool
26 | TakeBugReport
27 | open . #opens the Android Tool folder in Finder after executing. Could be annoying
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/adb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/adb
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/convertMovieFiletoGif.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # convertMovieFiletoGif.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 5/7/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1
10 | inputFile=$3
11 | outputFile=$4
12 | scale=$5
13 |
14 | TakeScreenshot(){
15 | $thisdir/ffmpeg -i $inputFile -vf scale=iw*$scale:ih*$scale $outputFile
16 | }
17 |
18 | mkdir -p ~/Desktop/AndroidTool
19 | cd ~/Desktop/AndroidTool
20 | TakeScreenshot
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/ffmpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/ffmpeg
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/getDetailsForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2
5 | adb=$thisdir/adb #Xcode
6 | #adb="adb" #CL
7 |
8 | declare -a arr
9 |
10 | GetDetails(){
11 | $adb -s $serial shell getprop
12 | }
13 |
14 | GetDetails
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/getResolutionForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
4 | serial=$2
5 | adb=$thisdir/adb #Xcode
6 | #adb="adb" #CL
7 |
8 | declare -a arr
9 |
10 | GetResolution(){
11 | $adb -s $serial shell wm size
12 | }
13 |
14 | GetResolution
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/getSerials.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # getSerials.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/23/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | adb=$thisdir/adb #Xcode
11 | #adb="adb" #CL
12 | let deviceCount=0
13 |
14 | declare -a arr
15 |
16 | GetSerials(){
17 | while read line
18 | do
19 | if [ -n "$line" ] && [ "`echo $line | awk '{print $2}'`" == "device" ]
20 | then
21 | let deviceCount=$deviceCount+1
22 | serial="`echo $line | awk '{print $1}'`"
23 |
24 | if (( deviceCount > 1 ))
25 | then
26 | serials=$serials";"
27 | fi
28 |
29 | serials=$serials$serial
30 | fi
31 | done < <($adb devices)
32 | echo $serials
33 | echo $serials > deviceslog.txt
34 | }
35 |
36 | GetSerials
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/idevicescreenshot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/idevicescreenshot
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/installApkOnDevice.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # installApkOnDevice.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/24/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
11 | serialAndInstallAndPath=$2
12 | adb=$thisdir/adb
13 |
14 | $adb -s $serialAndInstallAndPath > $thisdir/installog.txt
15 |
16 | #open $thisdir/installog.txt
17 | # > $thisdir/installlog.txt
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/installog.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/installog.txt
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libimobiledevice.4.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libimobiledevice.4.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libosxfuse_i32.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libosxfuse_i32.2.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libosxfuse_i64.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libosxfuse_i64.2.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libplist.1.1.10.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libplist.1.1.10.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libplist.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libplist.2.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libusbmuxd.1.0.8.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libusbmuxd.1.0.8.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libusbmuxd.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libusbmuxd.2.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libxml2.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libxml2.2.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/libzip.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool.app/Contents/Resources/libzip.2.dylib
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/postProcessMovieForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # postprocessmovie.sh
4 | # Bugs
5 | #
6 | # Created by Morten Just Petersen on 4/10/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 |
10 | #adb="/usr/local/bin/adb"
11 |
12 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
13 | serial=$2
14 | width=$3
15 | height=$4
16 | adb=$thisdir/adb
17 |
18 | deviceName=$($adb -s $serial shell getprop ro.product.name)
19 | buildId=$($adb -s $serial shell getprop ro.build.id)
20 | ldap=$(whoami)
21 | now=$(date +'%m%d%Y%H%M%S')
22 | finalFileName=$deviceName$buildId$ldap$now
23 | finalFileName="${finalFileName//[$'\t\r\n ']}"
24 |
25 | mkdir -p ~/Desktop/AndroidTool
26 | cd ~/Desktop/AndroidTool
27 |
28 | chara=$($adb -s $serial shell getprop ro.build.characteristics)
29 | if [[ $chara == *"watch"* ]]
30 |
31 | then # -- Watch ---
32 | echo 'Copying from watch...'
33 | $adb -s $serial pull /sdcard/screencapture.raw
34 | $adb -s $serial shell rm /sdcard/screencapture.raw
35 |
36 | echo '#Converting...'
37 |
38 | $thisdir/ffmpeg -f rawvideo -vcodec rawvideo -s $width"x"$height -pix_fmt rgb24 -r 10 -i screencapture.raw -an -c:v libx264 -pix_fmt yuv420p $finalFileName.mp4
39 |
40 | # $thisdir/ffmpeg -f rawvideo -vcodec rawvideo -pix_fmt rgb24 -r 10 -i screencapture.raw -an -c:v libx264 -pix_fmt yuv420p $finalFileName.mp4
41 |
42 |
43 | $thisdir/ffmpeg -i $finalFileName.mp4 $finalFileName.gif
44 |
45 | echo 'Cleaning up...'
46 | rm screencapture.raw
47 |
48 | else # -- Phone ---
49 | echo 'copying from phone...'
50 | $adb -s $serial pull /sdcard/capture.mp4
51 | mv capture.mp4 $finalFileName.mp4
52 | $thisdir/ffmpeg -i $finalFileName.mp4 $finalFileName.gif
53 |
54 | echo 'cleaning up'
55 | $adb -s $serial shell rm /sdcard/capture.mp4
56 | fi
57 |
58 | echo 'Opening file...'
59 | open $finalFileName.mp4
60 |
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/startRecordingForSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # startrecording.sh
4 | # Bugs
5 | #
6 | # Created by Morten Just Petersen on 4/10/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
10 | serial=$2
11 | width=$3
12 | height=$4
13 | bitrate=$5
14 |
15 | adb=$thisdir/adb
16 |
17 | chara=$($adb -s $serial shell getprop ro.build.characteristics)
18 | if [[ $chara == *"watch"* ]]
19 | then
20 | echo "Recording from watch..."
21 | $adb -s $serial shell screenrecord --o raw-frames /sdcard/screencapture.raw
22 | else
23 | echo "Recording from phone..."
24 | orientation=$($adb -s $serial shell dumpsys input | grep 'SurfaceOrientation' | awk '{ print $2 }')
25 | if [[ "${orientation//[$'\t\r\n ']}" != "0" ]]
26 | then
27 | $adb -s $serial shell screenrecord --bit-rate $bitrate --verbose --size $height"x"$width /sdcard/capture.mp4 # > $1/reclog.txt
28 | else
29 | $adb -s $serial shell screenrecord --bit-rate $bitrate --verbose --size $width"x"$height /sdcard/capture.mp4 # > $1/reclog.txt
30 | fi
31 | fi
32 |
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/takeScreenshotOfDeviceWithSerial.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # takeScreenshotOfDeviceWithSerial.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 4/23/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 |
9 | #!/bin/bash
10 |
11 | declare -a arr
12 |
13 | thisdir=$1 # $1 is the bundle resources path directly from the calling script file
14 | serial=$2
15 | adb=$thisdir/adb
16 |
17 | TakeScreenshot(){
18 | deviceName=$($adb -s $serial shell getprop ro.product.name)
19 | buildId=$($adb -s $serial shell getprop ro.build.id)
20 | ldap=$(whoami)
21 | now=$(date +'%m%d%Y%H%M%S')
22 | finalFileName=$deviceName$buildId$ldap$now.png
23 | finalFileName="${finalFileName//[$'\t\r\n ']}"
24 | echo "Taking screenshot of $serial"
25 |
26 | $adb -s $serial shell screencap -p /sdcard/$finalFileName
27 | $adb -s $serial pull /sdcard/$finalFileName
28 | $adb -s $serial shell rm /sdcard/$finalFileName
29 |
30 | open $finalFileName
31 | }
32 |
33 | mkdir -p ~/Desktop/AndroidTool
34 | cd ~/Desktop/AndroidTool
35 | TakeScreenshot
--------------------------------------------------------------------------------
/binaries/AndroidTool.app/Contents/Resources/takeScreenshotOfDeviceWithUUID.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # takeScreenshotForDeviceWithUUID.sh
4 | # AndroidTool
5 | #
6 | # Created by Morten Just Petersen on 5/4/15.
7 | # Copyright (c) 2015 Morten Just Petersen. All rights reserved.
8 | imobile=$1
9 | uuid=$2
10 |
11 | now=$(date +'%m%d%Y%H%M%S')
12 | ldap=$(whoami)
13 | finalFilename=iOS$ldap$now.png #todo: we could pass iosversion and model as $3. It's in the data model
14 | echo "ready to shoot to $finalFilename"
15 |
16 | TakeScreenshot(){
17 | export DYLD_LIBRARY_PATH=$imobile
18 | $imobile/idevicescreenshot -u $uuid rawiosshot.tiff
19 | sips -s format png rawiosshot.tiff --out $finalFilename
20 | rm rawiosshot.tiff
21 | open $finalFilename
22 | }
23 |
24 | mkdir -p ~/Desktop/AndroidTool
25 | cd ~/Desktop/AndroidTool
26 | TakeScreenshot
--------------------------------------------------------------------------------
/binaries/AndroidTool12.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/binaries/AndroidTool12.zip
--------------------------------------------------------------------------------
/ffmpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/ffmpeg
--------------------------------------------------------------------------------
/libimobiledevice.4.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libimobiledevice.4.dylib
--------------------------------------------------------------------------------
/libosxfuse_i32.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libosxfuse_i32.2.dylib
--------------------------------------------------------------------------------
/libosxfuse_i64.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libosxfuse_i64.2.dylib
--------------------------------------------------------------------------------
/libplist.1.1.10.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libplist.1.1.10.dylib
--------------------------------------------------------------------------------
/libplist.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libplist.2.dylib
--------------------------------------------------------------------------------
/libusbmuxd.1.0.8.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libusbmuxd.1.0.8.dylib
--------------------------------------------------------------------------------
/libusbmuxd.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libusbmuxd.2.dylib
--------------------------------------------------------------------------------
/libxml2.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libxml2.2.dylib
--------------------------------------------------------------------------------
/libzip.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mortenjust/androidtool-mac/9fc699b87671a3199ab4f217665d78dfbe527757/libzip.2.dylib
--------------------------------------------------------------------------------