No he investigado mucho específicamente sobre TeamViewer, pero como desarrollador de aplicaciones, diría que es muy posible con ciertas limitaciones. La clave es, también es necesario instalar cierta aplicación en el dispositivo Android como la interfaz entre PC<->Android.
El SDK de Android proporciona muchas cosas: con los permisos correctos, puede realizar una llamada, leer/enviar mensajes, abrir una aplicación, leer los sensores del dispositivo, etc. Si la aplicación tiene permiso de superusuario, tendrá más capacidad.
Si investigas el permiso de Aplicación TeamViewer puedes adivinar más o menos qué funciones puede hacer la aplicación remota:
La versión 10.0.2555 puede acceder:
- Historial de dispositivos y aplicaciones
- leer datos de registro sensibles
- Identidad
- encontrar cuentas en el dispositivo
- Fotos/Medios/Archivos
- modificar o borrar el contenido de tu memoria USB
- prueba de acceso al almacenamiento protegido
- Información sobre la conexión Wi-Fi
- ID del dispositivo e información de llamada
- leer el estado y la identidad del teléfono
- Otros
- acceder a SurfaceFlinger
- buffer de lectura de fotogramas
- pulsar teclas y botones de control
- acceso total a la red
- evitar que el dispositivo duerma
- ver las conexiones de red
- conectarse y desconectarse de Wi-Fi
- emparejar con dispositivos Bluetooth
- controlar las vibraciones
- medir el espacio de almacenamiento de las aplicaciones
- cerrar otras aplicaciones
- dibujar sobre otras aplicaciones
A continuación, tienes la aplicación TeamViewer instalada en el PC. Esto funciona como monitor/control principal. Ahora, dadas 2 aplicaciones (PC y Android), ambas aplicaciones pueden comunicarse entre sí (como una aplicación de chat/messenger). Puedes enviar un mensaje desde el PC, entonces la aplicación Android recibirá el mensaje, lo interpretará y hará algo en el dispositivo. También puedes solicitar datos desde el PC, entonces la aplicación Android recibirá de nuevo el mensaje, lo interpretará y enviará los datos de vuelta al PC.