This (C# .NET 4.6|4.7|4.8) dll is a kind of ADB/Fastboot/(apk/zip) Signer - Framework, it provides a lot of predefined .NET functions to communicate with an Android device. It's designed to work in 1st case with any non-root device but you can also use it with any rooted device (A few functions requires root access).

Overview Info & Download
The following (N)amespaces, (C)lasses & (I)nterfaces are currently available:
  • (N) ADB
    • (N) Binary (This is the binary/exe implementation of ADB)
      • (C) ADB (static Management Class for the ADBClient's)
      • (C) ADBClient (Implementation of IADBClient)
      • (C) Channel (Implementation of IChannel)
    • (N) Device
      • (N) BusyBox
        • (C) BusyBox
        • (C) Find
        • (C) Tar
      • (N) Dumpsys
        • (C) Battery
        • (C) Dumpsys
        • (I) IBattery
      • (N) Input
        • (I) IKeyEvent
        • (C) Input
        • (C) InputExtensions
        • (C) KeyEvent (Implementation of IKeyEvent)
      • (N) IO
        • (N) Compression
          • (N) BrotliSharp (Only available in .NET 4.6|4.7|4.8 - In .NET Standard >= 2.1 you have to use the native .NET implementation)
        • (C) ADirectoryInfo (Similar to .NET Directory/-Info)
        • (C) AFileInfo (Similar to .NET File/-Info)
        • (C) AFileStream (Similar to .NET FileStream)
        • (C) AFileSystemInfo (Similar to .NET FileSystemInfo, it's the abstract base for ADirectoryInfo & AFileInfo)
        • (C) AMountPointInfo (Similar to ADirectoryInfo & AFileInfo but only for mounts)
        • (C) FileSystemCache (A cache object for ADirectoryInfo & AFileInfo)
        • (I) IFileSystemCache (Interface for FileSystemCache)
        • (C) IO
        • (I) ITransferMessage
        • (C) MediaScanner (Manage the Android MediaScanner, useful after some file-transfers via ADB)
        • (C) Mount (Requires Root and manage the mounts)
        • (C) Stat (stat class for the ADB-Protocol)
        • (C) SyncStream (Base implementation of the ADB sync service. Utilized by AFileStream)
        • (C) TransferMessage
        • (C) UPath (Similar to .Net Path but for unix paths)
      • (N) Logcat
        • (I) ILogEntry
        • (C) Logcat
        • (C) LogEntry
      • (N) Manager
        • (C) ActivityManager
        • (I) IInstrumentation
        • (C) Instrumentation
        • (I) IPackage
        • (I) IPermission
        • (C) Manager
        • (C) Package
        • (C) PackageManager
        • (C) Permission
      • (N) Provider
        • (C) Contacts (Contacts provider)
        • (C) ContactsDataField
        • (C) ContactsEmail
        • (C) ContactsEvent
        • (C) ContactsGroup
        • (C) ContactsIdentity
        • (C) ContactsIM
        • (C) ContactsName
        • (C) ContactsNickname
        • (C) ContactsNote
        • (C) ContactsOrganization
        • (C) ContactsPhone
        • (C) ContactsPhoto
        • (C) ContactsPostalAddress
        • (C) ContactsRelation
        • (C) ContactsSipAddress
        • (C) ContactsWebsite
        • (I) IContactsDataField
        • (C) Provider
        • (C) Telephony (Telephony provider)
      • (N) Screen
        • (C) Framebuffer (Implementation of IFramebuffer)
        • (C) FramebufferInfo
        • (I) IFramebuffer (Interface of an RAW framebuffer)
        • (I) IFramebufferInfo
        • (I) IScreenDimension
        • (I) IScreenFocus
        • (C) Screen
        • (C) ScreenDimension
        • (C) ScreenFocus
      • (N) Shell
        • (I) IShell (Interface of an shell with in-/output abilities)
        • (C) Shell (Implementation of IShell)
      • (N) SQLite
        • (C) Options
        • (C) QueryTools
        • (C) SQLite3 (SQLite3 database connector)
      • (C) BuildProperties
      • (C) Daemon (Manage the daemon on the device)
      • (C) Device
      • (C) Forensics (ALFA-State)
      • (I) IUptime
      • (C) OpenRecoveryScript (Manage the OpenRecoveryScript)
      • (C) Phone (Start a call, dial a number, add a contact or send a sms)
      • (C) Su
      • (C) Uptime
      • (C) Wipe
    • (N) Shares
      • (C) Monitor (Implementation of IMonitor)
    • (N) Socket (This is the IP based implementation of ADB - Here is NO binary/exe required)
      • (C) ADB (static Management Class for the ADBClient's)
      • (C) ADBClient (Implementation of IADBClient)
      • (C) ADBSocket (IP based connector - Mimics the ADB-Server)
      • (C) Channel (Implementation of IChannel)
    • (C) ADBridge (Unified access to Binary.ADB and Socket.ADB)
    • (I) IADBClient (Interface for nearly all ADB commands)
    • (I) IChannel (Interface of an RAW data channel)
  • (N) Fastboot
    • (C) Backdoor (Some backdoor commands)
    • (C) Fastboot (static Management Class for the FastbootClient's)
    • (C) FastbootClient (Includes nearly all fastboot.exe commands)
    • (I) IFastbootClient (Interface for FastbootClient)
    • (C) Monitor (Implementation of IMonitor)
    • (C) OEM (Some OEM commands)
    • (C) Wipe
  • (N) ProcessModels
    • (C) General (Includes some predefined process models)
    • (I) IRealTimeBG (Interface of an background process with in-/output abilities)
    • (C) RealTimeBGExeV2 (Implementation of IRealTimeBG)
  • (N) Signer
    • (C) Signer (signapk.jar Interface)
  • (N) Tools
    • (C) CRC
    • (C) Deploy (Deploy the ADB/Fastboot/Signer files needed by this dll)
    • (C) Hash
    • (C) Hex
    • (C) IMEI (Some helper to verify and rebuild a valid IMEI)
    • (C) ToolBox
  • (C) Cleanup (Delete the files/folders which were created by this dll)
  • (C) Config
  • (C) DeviceInfo (Basic device info, the return from "(Binary/Socket).ADB.Devices()" and "Fastboot.Devices()")
  • (I) IDeviceInfo (Interface for DeviceInfo)
  • (I) IMonitor (Interface for the ADB.Binary, ADB.Socket and Fastboot.Fastboot monitor)


Special
  • All Android key-events as (int)enum and the ability to send them as single or stack.
  • Ready-To-Go MVVM's for WPF, XAML via my AndroidCtrlUI.dll
  • Multi-Device compatible, you can manage unlimited devices at the same time with this dll. Each device gets it's own instance. (Thread-Safe, the dll use lock() for critical sections)
  • UTF8-File/Folder Transfer you can transfer files/folders with containing special chars (ü, ö, ä, €, @, à, è, etc.)
  • On-the-fly Device to Device copy (Binary <-> Binary | Binary <-> Socket | Socket <-> Socket)
  • Device-Monitor, if activated, it will check every 10 sec. ADB & Fastboot for new connected devices and call an defined callback, if something changed. So your program get's an info if an device is connected or removed.


Hint
  • You can use all ADB methods/commands via USB or W-Lan/Lan, if your Rom supports ADB via W-Lan/Lan (Settings/Developer Settings).
  • If you want to use all subclasses of IADBClient with BusyBox instead of the Shell, you have to set IADBClient.UseBusyBox to true. This will tell the instance to use the BusyBox commands inside each method, if the device has BusyBox installed.