{"id":1607,"date":"2019-08-08T21:11:18","date_gmt":"2019-08-08T13:11:18","guid":{"rendered":"https:\/\/www.computersolutions.cn\/blog\/?p=1607"},"modified":"2019-08-09T00:50:53","modified_gmt":"2019-08-08T16:50:53","slug":"hacking-a-phicomm-r1-speaker","status":"publish","type":"post","link":"https:\/\/www.computersolutions.cn\/blog\/2019\/08\/hacking-a-phicomm-r1-speaker\/","title":{"rendered":"Hacking a Phicomm R1 Speaker"},"content":{"rendered":"\n<p>I bought a Phicomm R1 Speaker for 150RMB delivered, its supposed to have Wifi and a config app, but the App registration is apparently broken.<\/p>\n\n\n\n<p>The Phicomm R1 speaker has Android installed, unfortunately the configuration app for the speaker is no longer working as noted, so you can only use Bluetooth unless you hack it (Bluetooth is available via a triple press of the top button).<\/p>\n\n\n\n<p>For some crazy reason, the speaker has a fairly decent cpu, and is running Android (albeit without a display, which is annoying, but not completely unfixable); we can connect via adb.<\/p>\n\n\n\n<p>Download adb tools here &#8211; https:\/\/www.xda-developers.com\/install-adb-windows-macos-linux\/ and stick in your path.<\/p>\n\n\n\n<p>Set the speaker to Wifi (long press of the top button), and connect to the Phicomm_R1_xxx network.<\/p>\n\n\n\n<p>Mine setup a network on 192.168.43.0\/24, with a gateway of 192.168.43.1<\/p>\n\n\n\n<p>adb connect 192.168.43.1:5555<\/p>\n\n\n\n<p>adb shell ls -al<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><code>drwxr-xr-x root \u00a0 \u00a0 root\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2016-01-21 16:50 acct<\/code><\/p><p><code>lrwxrwxrwx root \u00a0 \u00a0 root\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2016-01-21 16:50 bcm4329_cybertan.hcd -> \/etc\/bluez\/bcm432x\/BCM4329B1_002.002.023.0389.0000_Cybertan-Foxconn_Cls2_extLNA_EDRmaxInputLev+PeakDEVM_NT.hcd<\/code><\/p><p>&#8230;<\/p><p><code>-rw-r--r-- root \u00a0 \u00a0 root \u00a0 \u00a0 \u00a0 148936 1970-01-01 08:00 rk30xxnand_ko.ko.3.10.0<\/code><\/p><p><code>drwx------ root \u00a0 \u00a0 root\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2018-04-28 10:50 root<\/code><\/p><p><\/p><p><code>-rw-r--r-- root \u00a0 \u00a0 root \u00a0 \u00a0 \u00a0 252134 1970-01-01 08:00 vcodec_service.ko<\/code><\/p><p><code>lrwxrwxrwx root \u00a0 \u00a0 root\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 2016-01-21 16:50 vendor -> \/system\/vendor<\/code><\/p><cite>Yup, that worked!<\/cite><\/blockquote>\n\n\n\n<p>Ok, so we can see the thing at least!  Lets get some screen viewing software installed.  I&#8217;m on OSX, so its a simple brew install..<br><br>This seems to work reasonably well &#8211; https:\/\/github.com\/Genymobile\/scrcpy<\/p>\n\n\n\n<p>brew install scrcpy<\/p>\n\n\n\n<p><br>#load ADB first as above on the default unconfigured wifi ip<br>adb connect 192.168.43.1:5555<br>scrscpy <\/p>\n\n\n\n<p>You should now be able to see the device display, and the internal app called Pandora.  The pandora app is a rather useless  one &#8211; it basically doesn&#8217;t work.  So ignore..  <br>We need to install other tools.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>#allow any app install<br>adb shell settings put secure install_non_market_apps 1<br><\/p>\n\n\n\n<p>Next up,  configure wifi on the thing!<\/p>\n\n\n\n<p>#install adb wifi tool<br>wget https:\/\/github.com\/steinwurf\/adb-join-wifi\/releases\/download\/1.0.1\/adb-join-wifi.apk<br>adb push adb-join-wifi.apk  \/data\/local\/tmp\/adb-join-wifi.apk  <br>adb shell \/system\/bin\/pm install -t \/data\/local\/tmp\/adb-join-wifi.apk  <br><br>#change YOURSSID, and YOURWIFIPASS as appropriate..<br>adb shell am start -n com.steinwurf.adbjoinwifi\/com.steinwurf.adbjoinwifi.MainActivity -e password_type WPA -e ssid YOURSSID -e password YOURWIFIPASS<\/p>\n\n\n\n<p>It will hopefully setup the wifi.  You&#8217;ll need to wait for it to &#8216;timeout&#8217; and tell you wifi setting failed; it will then connect to your normal wifi as set above.<br><br>Once on your &#8216;normal&#8217; wifi, you can adb connect again to the normal ip.<br>I installed airpin.apk to setup Airplay, now I can connect to the speaker in iTunes, and play.  Good enough!<br><br>It can be downloaded here &#8211; http:\/\/www.waxrain.com\/product_en.html<br>Install in a similar manner as other apk&#8217;s, then use screen mirroring to config the name.<br>I called mine phicomm<br><br><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"980\" height=\"334\" src=\"https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-08-at-11.50.22-PM.png\" alt=\"\" class=\"wp-image-1611\"\/><\/figure>\n\n\n\n<p>#copy and install airpin APK<br>adb push AirPin.apk  \/data\/local\/tmp\/AirPin.apk  <br>adb shell \/system\/bin\/pm install -t \/data\/local\/tmp\/AirPin.apk  <br>#run the screen mirroring to configure directly on the device<br>scrcpy<br><br><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1432\" height=\"860\" src=\"https:\/\/www.computersolutions.cn\/blog\/wp-content\/uploads\/2019\/08\/Screen-Shot-2019-08-08-at-11.52.01-PM.png\" alt=\"\" class=\"wp-image-1613\"\/><\/figure>\n\n\n\n<p>You can go further and remove the Xiao Xun (\u5c0f\u8baf) listening software, and install something else, but I haven&#8217;t bothered (yet).  Mine is still unconfigured.<br>This is detailed in Chinese over here &#8211; <br>https:\/\/www.right.com.cn\/forum\/thread-855587-1-5.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I bought a Phicomm R1 Speaker for 150RMB delivered, its supposed to have Wifi and a config app, but the App registration is apparently broken. The Phicomm R1 speaker has Android installed, unfortunately the configuration app for the speaker is no longer working as noted, so you can only use Bluetooth unless you hack it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1607","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts\/1607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/comments?post=1607"}],"version-history":[{"count":4,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts\/1607\/revisions"}],"predecessor-version":[{"id":1616,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/posts\/1607\/revisions\/1616"}],"wp:attachment":[{"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/media?parent=1607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/categories?post=1607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.computersolutions.cn\/blog\/wp-json\/wp\/v2\/tags?post=1607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}