Can we flash our own firmware to the device?
You can definitely assign different actions to button presses, that's handled by the phone side