Finish Ubuntu Touch developer mode including UI support

Registered by Oliver Grawert

With trusty we want to have a proper option to enable develoiper mode in the UI, have all insecure bits off by default (adb access, ssh access) and put it in the hands of the user to enable them via a settings app option.

Blueprint information

Status:
Not started
Approver:
Michael Frey
Priority:
Undefined
Drafter:
Oliver Grawert
Direction:
Approved
Assignee:
Oliver Grawert
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

UDS discussion notes:

 Needed for developer mode:
 - UI Options -- in settings?
 * shell access (adb + SSH) (RNDIS and/or Wifi?)

* make adb run as phablet user (there should be a bug open about this) so that the user can use sudo
* fingerprint verification for adb connections

* USB gadget is setup in Android container, system settings would need some way to access that
  - could have a wrapper script that we can sudo?
  - or could design a clean dbus service to expose android properties

* Do we want to move the gadget handling code outside of android? not a big benefit as it's device specific code

Platform developer issues we might want to solve:
* MTP service resets the ADB connection -- SOLVED by Sergio already
[Sergio, Oliver] * starting adb early on for platform porting by putting some file in place that gets recognized during boot
[Oliver, Stephane] * having some way to enter the android container; lxc-console should work but doesn't

We need a way for QA to enable adb by default before the first boot as to allow them to run their tests

Would we nice not to have to specify -d when using phablet-flash against recovery

SSH should be startable via property system.

(?)

Work Items

Work items:
[sergiusens] starting adb early on for platform porting by putting some file in place that gets recognized during boot: TODO
[rsalveti] make lxc-console work for the android container: DONE
[ogra] DBus service to expose specific Android properties to the end-user: DONE
[ogra] Add a setting panel to enable/disable adb over DBus to the new service: DONE
[sergiusens] add an ubuntu_command to enable adb: DONE
[sergiusens] add a copy of the android properties database to the recovery so that getprop works on ro.model: TODO
[ogra] make adb run as phablet user and only when a user password is available: DONE
[ogra] provide a user accessible way to toggle sshd on/off without requiring sudo: DONE
[ogra] add UI to popup the device fingerprint when negociating a connection: DONE