OTG support for Samsung A3


Question

Nothing happens when I plug a USB stick to my Samsung A3 2015 (SM-A300FU) with an OTG cable (on-the-go).



How to enable OTG support on this device?



PS: I previously had a 5.0.2 original, unrooted. I now have a rooted 6.0.1 Marshmallow (Build number MMB29M.A300FUXXU1CRA3, Kernel version 3.10.49-12877970, Fri Jan 12 20:48:03 KST 2018).


Answer

Like thinker, I can confirm that USB OTG is available on Samsung Galaxy A3 (2015), at least if you have the version SM-A300FU, but I'm pretty sure that all versions can support it. However to get it working you need to get the custom ROM Lineage OS (quite stable on my device), and the installation it pretty hard (not just an apk to install...) and can be dangerous. Here are the instructions to install it.



YOU NEED TO KNOW THAT INSTALLING A CUSTOM ROM CAN BE VERY DANGEROUS FOR YOUR DEVICE, BRICK IT, AND MAKE IT GOOD TO PUT IN THE BIN IF SOMETHING GOES WRONG DURING THE FLASH. SO ALWAYS FOLLOW ALL THE INSTRUCTIONS VERY CAREFULLY, I CAN'T BE RESPONSIBLE IF YOU BREF YOUR DEVICE, AND DON'T FORGET TO USER YOUR BRAIN.



ALSO MAKE SURE TO HAVE BACKUPS (DATA, OF EVERYTHING ON YOUR COMPUTER!!!



Step 1: Install Odin on your computer



First download ODIN from this source if you are on Windows, and compile heimdall if you are on Linux (the available version in the debian unstable repo is not up to date, so you need to compile it by yourself, but don't worry it's pretty simple and described in the Appendix B of the Readme file). If something goes wrong, make sure that your phone drivers are installed.



Step 2: install latest TWRP custom recovery mode on your device to backup your current ROM



NOTE: If your device is already rooted (link to root it if you are on Lollipop Android 5.x), you should be able to first backup the RECOVERY using this thread. I didn't try, but it may be a good idea...



It is always a good idea to backup your current ROM to avoid problems latter. To do so, you need to flash a custom recovery (TWRP) on your device. I tried the image on this website, but no idea why I wasn't successful (basically it shut down after showing me the first TWRP boot screen). Instead, I followed the instructions here, and I downloaded the file "twrp_3.0.2-1_sm-a300_otg_fix2.tar" that works great (actually, you can even test USB-OTG here if you change the "storage" during backup !). If you are on Windows, use Odin like in the tuto, on linux use a command like



sudo /path/to/my/compiled/bin/heimdall flash --RECOVERY ~/download/twrp_3.0.2-1_sm-a300_otg_fix2/recovery.img


Then, once TWRP is installed, reboot on it (power + Home + Volume up), go to backup, select the storage you want, and I recommand you to backup all the partitions. It's always better to have more than less...



Step 3: get the latest stock (Samsung) android ROM for your device & operator



This step is really needed if you want to avoid connectivity issues, like non working Wifi... I tried to install Lineage OS on my old 5.x android, and wifi was not working. But then I installed the lastest 6.x android version (that uploads the good baseband...), and now everything works great!



To do so:




  • first check what is your device version in the "Parameters > About phone > Model". Mine is SM-A300FU, and it should work on all SM-A300F, SM-A300FU, SM-A300M, SM-A300H.

  • Go on the website http://updato.com/, and type your "SM-A300*" model (you can also go to sammobile, but it was too slow for me to download the image). Then, filter by region to match your country and your mobile operator, and also filter by version (Marshmallow). Then click on "update results". You should get several items. Try to pick one whose PDA field ends with "CPH3", I saw some comments that said that this one is the best one to solve connectivity issues (not sure it others would work). For example, if you are in France, with Bouygues, you should use this version.

  • Then wait the end of the downloading, and drink 20 coffees (can be pretty long).

  • Then flash the rom using this tutorial if you are on Windows (I never really used Odin, but I guess you can do it). If you are on linux, you first need to extract the .zip, rename the .tar.md5 into .tar, extract the .tar, and then run something like



    sudo /path/to/my/compiled/bin/heimdall flash --APNHLOS NON-HLOS.bin --ABOOT aboot.mbn --BOOT boot.img --HIDDEN hidden.img.ext4 --MODEM modem.bin --RPM rpm.mbn --SBL1 sbl1.mbn --SYSTEM system.img.ext4 --QSEE tz.mbn --CACHE cache.img.ext4 --QHEE hyp.mbn




All right, now if everything goes fine, you should reboot into the latest Android version. Wait a few mn that everything gets installed, and then go to the next step!



Step 4: Re-Install TWRP



Because TWRP has been erased (and no, don't try to flash everything except the recovery rom before, because it will bootloop after), you need to re-flash it, like in step 2!



Step 5: Install Lineage OS (yes !!!)



Follow this (xda-trustworthy) tutorial to install Lineage OS. Cross your finger, reboot, and enjoy !



PS: If you want to enable root on the Lineage OS, it's just a case to tick in the developer options!



Question: Can I keep using the official ROM?



I don't know if it's possible to exchange the kernel of Lineage OS with the official ROM, and if it would work... If you feel aventurous, you can give it a try, but personally I thing that Lineage OS is really nice ^^


Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes