A rather complex wifi issue (android tablet)


Question

Straight to the point. My wifi has not been working properly since after a few days after upgrading its firmware and android version.



Issue description



The issue is rather inconsistent. Wifi will usually not detect any networks. Sometimes it will spend around 30 seconds scanning, and then it will show available networks for around 10 seconds, after which the networks disappear from the list. Trying to connect in this span of time does nothing, that is, when I tap on the network and then choose "connect", I get bumped back on the network list as if nothing had happened. Other times, attempting to connect a network makes all networks disappear instantly. In this case, the networks come back after a few seconds, and the network I was trying to connect to appears as "connecting", but all networks disappear shortly after this. Occasionally, wifi will get stuck while turning on, but this usually happens after/while I'm tinkering permissions.



I must remark, this happens on every network, it is not a router-related issue. I also ruled out a hardware issue, since I am able to briefly detect networks, but I am not able to connect to them.



Origin of the issue



The issue started after a few days after I updated my tablet's ROM, using the official software released by the developer, and after rooting the tablet. The odd thing is that the wifi worked just fine for a few days after I upgraded the software. While this could be the origin of this problem, it could come from a different source. By all means do read the "Other (weird) information"



Fixes I have tried




  • Changing wifi settings (changing advance settings, changing device name in wifi direct's settings, etc.)

  • Factory reset (issue persisted even before I rooted the device again)

  • Editing permissions of every file inside the dhcpcd folder, using the app X-plore (with root permission), as well as other files inside the "permission" folder (all the ones that have the "wifi" name on them).

  • Various "Wifi fixer" apps.

  • MAC changer apps (to change my MAC address)

  • Wiping cache partition



Fixes I have not tried




  • Installing another ROM (I am unable to do that, because there are no other ROMs compatible for my device, not even custom ones)

  • Rolling back my android version (from 4.4.2 to 4.2)



Other (weird) information




  • Mac Address oddities



My MAC address changed after a few days, just when the issue begun. I am not sure if this is related, but I'll explain it anyway: My girlfriend's ISP is a local small company (owned by 1-3 people) which requires you to send them your MAC address so they can... whitelist your device? If you do not send them your MAC address, you can connect to the network, but with limited access (only their webpage). This seems odd to me because the network itself is private (that is, it has its own password, like any private network) but you are still required to send the MAC address of every device you want to connect to your network.



When I went to her house and I tried to connect after I had upgraded my ROM, I got limited access, despite having already sent my tablet's MAC address many months ago. I checked my MAC address and I noticed it had changed to 00:90:4c:07:71:12. I messaged the ISP guy and sent him my new MAC. But I checked again, after a few minutes and my MAC was back to its old number. The MAC went back and forth from the new one to the old one a few times, and it finally stuck with the new one. The ISP "guy" said he would try to "remote access" to try and fix the issue (that is, my limited access to my GF's particular network).



After that, my tablet couldn't connect to any network, and the issue begun as I described above. I thought this unrelated to the issue, but I found some threads complaining about issues related to MACs that begin with 00:90:4c. Could this be the source of the problem?




  • Brief but stable conection



Last week, my tablet was able to connect normally to my university's network. It happened after I enabled the "mobile network" settings (Data enabled, Data roaming). I have no data service on this tablet, despite that, after checking those boxes I was able to connect like the issue had never existed. However, after disconnecting from that network the issue came back as if nothing happened. I have not been able to reproduce this, not by connecting to the same network, not by being in the same spot (so I would have the same wifi signal strength).




  • Wifi was on after factory reset



As it says, after reseting the tablet (and wiping the internal SD card, of course) the wifi was already on by default. Could this mean anything?



Device description and more information



It's an Onda v975s, with android kitkat 4.4.2, Firmware version v4.4_V1. Kernel version 3.3.0. Please, do ask for more information if needed.



I also have some logcats that point at wpa_supplicant.




wpa_supplicant: Could not set interface wlan0 flags (UP): Operation not permitted




You can find the full logcat here on Pastebin.



If you made it through this long post, I thank you. I just ran out of ideas, so I hope someone here is able to help me.


Answer

By looking at these two lines in logcat:



Could not set interface wlan0 flags (UP): Operation not permitted

WifiStateMachine: Driver start failed, retrying


I would say that the 4.4.2 ROM has a faulty/missing WiFi card driver (2nd line) without which you of course can't even start/scan/keep the WiFi connection (1st line).



As you have said, you haven't tried flashing it back to 4.2, but I strongly recommend to do so, at least to check if then the WiFi would work again.



If it then does work, that means the 4.4.2 ROM probably has faulty drivers or the permissions somehow changed so you don't have permission to turn WiFi on.



Depending on the outcome, you can either:




  • Try to contact your OEM for a fix in 4.4.2

  • Stay on 4.2 since you got no custom ROMs available

  • MAYBE try to transfer drivers somehow from 4.2 into 4.4.2



I wouldn't rely much on the last option because of compatibility and changes in Android between versions, and besides that, it would require a lot of technical skill and knowledge + it could lead to potential hardware damage.


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