• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[ROM] [7.1.2] [Evervolv 7.1.2] [Unofficial with Wi-Fi fixes] [2021-12-11]

Search This thread

void555

Member
Jun 8, 2019
6
15
Reutov
Evervolv 7.1.2 for HP Touchpad (tenderloin)

I have just built it from source, integrated Wi-Fi fixes I made for Amazon Kindle Fire HDX earlier, replaced the Wi-Fi driver with the one from backports-5.9.12-1.tar.gz, and tweaked memory settings. Now it sees more 5 GHz channels, automatically reconnects on connection loss, works properly when AP/router uses the same MAC address for 2.4 GHz and 5 GHz.

Bluetooth works.
The camera more or less works in some applications.

Feel free to test and report bugs.

If you intend to install GApps, I suggest disabling unused "heavy" applications like "Google".


Whatsnew:

2021-12-05 Removed "Phone" and "EVUpdater" (waste of RAM), increased per-app
Java heap limits (e. g. NewPipe works now).

2021-11-08 Latest Wi-Fi driver & fixes.

Kernel source:
https://github.com/Evervolv/android_kernel_htc_msm8960.git (branch "evervolv/ng-7.1")

Device tree:
https://github.com/Evervolv/android_device_hp_tenderloin-common.git (branch "evervolv/ng-7.1")
 
Last edited:

sq5

Member
Jan 11, 2010
8
1
Thanks for creating this build. Flashing a clean install onto a 32GB Touchpad now to test.
 

sq5

Member
Jan 11, 2010
8
1
First observation is there is a long delay with black screen between when the "HP Powered by Android" logo shows and when the Evervolv boot animation begins. The black screen lasts several minutes and there is no indication during that time that the ROM is actually loading.

The boot animation appears eventually though, after which the tablet finishes booting pretty quickly.
 

schwatter

Senior Member
Aug 18, 2011
376
104
@void555

Thx, i give it a try. I'm also plagued with wifi disconnects after some time without reconnect.
I have done alot with my router setup to fix this without luck.
Like fixed channels, different names for 2,4 and 5ghz. Not hidden.

This year i found some good reconnect app. Maybe helpfull for someone.


I also use no more gapps.


greeting schwatter
 

HP_TOUCHPAD

Senior Member
Jan 18, 2017
1,245
517
WiFi re-associate ( reconnect ) Fix for Android 7, 8, an 9.

About 6 months ago I started using some Tablets as a Web Server, Nextcloud, FTP site and WebDav Server.
Any open ( un-lock ) Android device will do the job, but the HP Touchpad can be completely modified easily and will not brick. Making it the perfect Server, built in battery backup ( no power interruption, always on ) noise free, low power consumption.
The challenge was how to make the WIFI behave like wire Ethernet connection, it needs to be always ON and reconnect automatically no matter what and low latency. The Tablets were always charging by USB port set up for maximum performance settings.
First step set the Router to 5 GHz (faster, but short rage ) instead of 2.4 GHz (slower, longer range)
Attached are the screenshot of the Router:
w1.png

w2.png
w3.png
 
  • Like
Reactions: middle_road

HP_TOUCHPAD

Senior Member
Jan 18, 2017
1,245
517
How to make Android WIFI to automatically keep the connection alive even if it gets disconnected or the router reboots.
Take total control of your WIFI: All the commands available.
https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf
To test, connect Tablet to PC open a terminal and use ADB Shell.
Code:
wpa_cli -p /data/misc/wpa_supplicant

Code:
adb shell
tenderloin:/ # wpa_cli -p /data/misc/wpa_supplicant
wpa_cli v2.6-devel-7.1.2
Copyright (c) 2004-2016, Jouni Malinen <[email protected]> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.


Using interface 'wlan0'

Interactive mode

>

Now all commands can be enter to override the system settings and control the WIFI driver directly.
List of the most important commands to enter in interactive mode:
Code:
IFNAME=wlan0 scan
disable_network list_networks
IFNAME=wlan0 disable_network 0
IFNAME=wlan0 enable_network 0
IFNAME=wlan0 reconnect
IFNAME=wlan0 add_network 0
IFNAME=wlan0 set_network 0 auth_alg OPEN
IFNAME=wlan0 set_network 0 ssid " "
IFNAME=wlan0 select_network 0
IFNAME=wlan0 enable_network 0
IFNAME=wlan0 reassociate
IFNAME=wlan0 status
IFNAME=wlan0 save_config

Example:
Code:
> IFNAME=wlan0 scan
OK
IFNAME=wlan0 <3>CTRL-EVENT-SCAN-STARTED
IFNAME=wlan0 <3>CTRL-EVENT-SCAN-RESULTS

Command to reassociate to the already connected network every 10 minutes ( or any time interval you want )
Enter entire command after the ADB Shell prompt:

Code:
wpa_cli -p /data/misc/wpa_supplicant -i wlan0 IFNAME=wlan0 reassociate scan_interval 10

The command can be run automatically as a script at boot time to run every 30 minutes as follow:
Code:
watch -n 30 wpa_cli -p /data/misc/wpa_supplicant -i wlan0 IFNAME=wlan0 reassociate scan_interval 10 &


All available commands:
Code:
 status [verbose] = get current WPA/EAPOL/EAP status
  ifname = get current interface name
  ping = pings wpa_supplicant
  relog = re-open log-file (allow rolling logs)
  note <text> = add a note to wpa_supplicant debug log
  mib = get MIB variables (dot1x, dot11)
  help [command] = show usage help
  interface [ifname] = show interfaces/select interface
  level <debug level> = change debug level
  license = show full wpa_cli license
  quit = exit wpa_cli
  set = set variables (shows list of variables when run without arguments)
  dump = dump config variables
  get <name> = get information
  logon = IEEE 802.1X EAPOL state machine logon
  logoff = IEEE 802.1X EAPOL state machine logoff
  pmksa = show PMKSA cache
  pmksa_flush = flush PMKSA cache entries
  reassociate = force reassociation
  reattach = force reassociation back to the same BSS
  preauthenticate <BSSID> = force preauthentication
  identity <network id> <identity> = configure identity for an SSID
  password <network id> <password> = configure password for an SSID
  new_password <network id> <password> = change password for an SSID
  pin <network id> <pin> = configure pin for an SSID
  otp <network id> <password> = configure one-time-password for an SSID
  passphrase <network id> <passphrase> = configure private key passphrase
    for an SSID
  sim <network id> <pin> = report SIM operation result
  bssid <network id> <BSSID> = set preferred BSSID for an SSID
  blacklist <BSSID> = add a BSSID to the blacklist
  blacklist clear = clear the blacklist
  blacklist = display the blacklist
  log_level <level> [<timestamp>] = update the log level/timestamp
  log_level = display the current log level and log options
  list_networks = list configured networks
  select_network <network id> = select a network (disable others)
  enable_network <network id> = enable a network
  disable_network <network id> = disable a network
  add_network = add a network
  remove_network <network id> = remove a network
  set_network <network id> <variable> <value> = set network variables (shows
    list of variables when run without arguments)
  get_network <network id> <variable> = get network variables
  dup_network <src network id> <dst network id> <variable> = duplicate network variables
  list_creds = list configured credentials
  add_cred = add a credential
  remove_cred <cred id> = remove a credential
  set_cred <cred id> <variable> <value> = set credential variables
  get_cred <cred id> <variable> = get credential variables
  save_config = save the current configuration
  disconnect = disconnect and wait for reassociate/reconnect command before
    connecting
  reconnect = like reassociate, but only takes effect if already disconnected
  scan = request new BSS scan
  scan_results = get latest scan results
  abort_scan = request ongoing scan to be aborted
  bss <<idx> | <bssid>> = get detailed scan result info
  get_capability <eap/pairwise/group/key_mgmt/proto/auth_alg/channels/freq/modes> = get capabilities
  reconfigure = force wpa_supplicant to re-read its configuration file
  terminate = terminate wpa_supplicant
  interface_add <ifname> <confname> <driver> <ctrl_interface> <driver_param>
    <bridge_name> <create> <type> = adds new interface, all parameters but
    <ifname> are optional. Supported types are station ('sta') and AP ('ap')
  interface_remove <ifname> = removes the interface
  interface_list = list available interfaces
  ap_scan <value> = set ap_scan parameter
  scan_interval < 2 > = set scan_interval parameter (in seconds)
  bss_expire_age <value> = set BSS expiration age parameter
  bss_expire_count <value> = set BSS expiration scan count parameter
  bss_flush <value> = set BSS flush age (0 by default)
  ft_ds <addr> = request over-the-DS FT with <addr>
  wps_pbc [BSSID] = start Wi-Fi Protected Setup: Push Button Configuration
  wps_pin <BSSID> [PIN] = start WPS PIN method (returns PIN, if not hardcoded)
  wps_check_pin <PIN> = verify PIN checksum
  wps_cancel Cancels the pending WPS operation
  wps_nfc [BSSID] = start Wi-Fi Protected Setup: NFC
  wps_nfc_config_token <WPS|NDEF> = build configuration token
  wps_nfc_token <WPS|NDEF> = create password token
  wps_nfc_tag_read <hexdump of payload> = report read NFC tag with WPS data
  nfc_get_handover_req <NDEF> <WPS> = create NFC handover request
  nfc_get_handover_sel <NDEF> <WPS> = create NFC handover select
  nfc_report_handover <role> <type> <hexdump of req> <hexdump of sel> = report completed NFC handover
  wps_reg <BSSID> <AP PIN> = start WPS Registrar to configure an AP
  wps_ap_pin [params..] = enable/disable AP PIN
  wps_er_start [IP address] = start Wi-Fi Protected Setup External Registrar
  wps_er_stop = stop Wi-Fi Protected Setup External Registrar
  wps_er_pin <UUID> <PIN> = add an Enrollee PIN to External Registrar
  wps_er_pbc <UUID> = accept an Enrollee PBC using External Registrar
  wps_er_learn <UUID> <PIN> = learn AP configuration
  wps_er_set_config <UUID> <network id> = set AP configuration for enrolling
  wps_er_config <UUID> <PIN> <SSID> <auth> <encr> <key> = configure AP
  wps_er_nfc_config_token <WPS/NDEF> <UUID> = build NFC configuration token
  ibss_rsn <addr> = request RSN authentication with <addr> in IBSS
  sta <addr> = get information about an associated station (AP)
  all_sta = get information about all associated stations (AP)
  deauthenticate <addr> = deauthenticate a station
  disassociate <addr> = disassociate a station
  chan_switch <cs_count> <freq> [sec_channel_offset=] [center_freq1=] [center_freq2=] [bandwidth=] [blocktx] [ht|vht] = CSA parameters
  suspend = notification of suspend/hibernate
  resume = notification of resume/thaw
  roam <addr> = roam to the specified BSS
  p2p_find [timeout] [type=*] = find P2P Devices for up-to timeout seconds
  p2p_stop_find = stop P2P Devices search
  p2p_asp_provision <addr> adv_id=<adv_id> conncap=<conncap> [info=<infodata>] = provision with a P2P ASP Device
  p2p_asp_provision_resp <addr> adv_id=<adv_id> [role<conncap>] [info=<infodata>] = provision with a P2P ASP Device
  p2p_connect <addr> <"pbc"|PIN> [ht40] = connect to a P2P Device
  p2p_listen [timeout] = listen for P2P Devices for up-to timeout seconds
  p2p_group_remove <ifname> = remove P2P group interface (terminate group if GO)
  p2p_group_add [ht40] = add a new P2P group (local end as GO)
  p2p_group_member <dev_addr> = Get peer interface address on local GO using peer Device Address
  p2p_prov_disc <addr> <method> = request provisioning discovery
  p2p_get_passphrase = get the passphrase for a group (GO only)
  p2p_serv_disc_req <addr> <TLVs> = schedule service discovery request
  p2p_serv_disc_cancel_req <id> = cancel pending service discovery request
  p2p_serv_disc_resp <freq> <addr> <dialog token> <TLVs> = service discovery response
  p2p_service_update = indicate change in local services
  p2p_serv_disc_external <external> = set external processing of service discovery
  p2p_service_flush = remove all stored service entries
  p2p_service_add <bonjour|upnp|asp> <query|version> <response|service> = add a local service
  p2p_service_rep asp <auto> <adv_id> <svc_state> <svc_string> [<svc_info>] = replace local ASP service
  p2p_service_del <bonjour|upnp> <query|version> [|service] = remove a local service
  p2p_reject <addr> = reject connection attempts from a specific peer
  p2p_invite <cmd> [peer=addr] = invite peer
  p2p_peers [discovered] = list known (optionally, only fully discovered) P2P peers
  p2p_peer <address> = show information about known P2P peer
  p2p_set <field> <value> = set a P2P parameter
  p2p_flush = flush P2P state
  p2p_cancel = cancel P2P group formation
  p2p_unauthorize <address> = unauthorize a peer
  p2p_presence_req [<duration> <interval>] [<duration> <interval>] = request GO presence
  p2p_ext_listen [<period> <interval>] = set extended listen timing
  p2p_remove_client <address|iface=address> = remove a peer from all groups
  vendor_elem_add <frame id> <hexdump of elem(s)> = add vendor specific IEs to frame(s)
    0: Probe Req (P2P), 1: Probe Resp (P2P) , 2: Probe Resp (GO), 3: Beacon (GO), 4: PD Req, 5: PD Resp, 6: GO Neg Req, 7: GO Neg Resp, 8: GO Neg Conf, 9: Inv Req, 10: Inv Resp, 11: Assoc Req (P2P), 12: Assoc Resp (P2P)
  vendor_elem_get <frame id> = get vendor specific IE(s) to frame(s)
    0: Probe Req (P2P), 1: Probe Resp (P2P) , 2: Probe Resp (GO), 3: Beacon (GO), 4: PD Req, 5: PD Resp, 6: GO Neg Req, 7: GO Neg Resp, 8: GO Neg Conf, 9: Inv Req, 10: Inv Resp, 11: Assoc Req (P2P), 12: Assoc Resp (P2P)
  vendor_elem_remove <frame id> <hexdump of elem(s)> = remove vendor specific IE(s) in frame(s)
    0: Probe Req (P2P), 1: Probe Resp (P2P) , 2: Probe Resp (GO), 3: Beacon (GO), 4: PD Req, 5: PD Resp, 6: GO Neg Req, 7: GO Neg Resp, 8: GO Neg Conf, 9: Inv Req, 10: Inv Resp, 11: Assoc Req (P2P), 12: Assoc Resp (P2P)
  wfd_subelem_set <subelem> [contents] = set Wi-Fi Display subelement
  wfd_subelem_get <subelem> = get Wi-Fi Display subelement
  fetch_anqp = fetch ANQP information for all APs
  stop_fetch_anqp = stop fetch_anqp operation
  interworking_select [auto] = perform Interworking network selection
  interworking_connect <BSSID> = connect using Interworking credentials
  interworking_add_network <BSSID> = connect using Interworking credentials
  anqp_get <addr> <info id>[,<info id>]... = request ANQP information
  gas_request <addr> <AdvProtoID> [QueryReq] = GAS request
  gas_response_get <addr> <dialog token> [start,len] = Fetch last GAS response
  hs20_anqp_get <addr> <subtype>[,<subtype>]... = request HS 2.0 ANQP information
  nai_home_realm_list <addr> <home realm> = get HS20 nai home realm list
  hs20_icon_request <addr> <icon name> = get Hotspot 2.0 OSU icon
  fetch_osu = fetch OSU provider information from all APs
  cancel_fetch_osu = cancel fetch_osu command
  sta_autoconnect <0/1> = disable/enable automatic reconnection
  tdls_discover <addr> = request TDLS discovery with <addr>
  tdls_setup <addr> = request TDLS setup with <addr>
  tdls_teardown <addr> = tear down TDLS with <addr>
  tdls_link_status <addr> = TDLS link status with <addr>
  wmm_ac_addts <uplink/downlink/bidi> <tsid=0..7> <up=0..7> [nominal_msdu_size=#] [mean_data_rate=#] [min_phy_rate=#] [sba=#] [fixed_nominal_msdu] = add WMM-AC traffic stream
  wmm_ac_delts <tsid> = delete WMM-AC traffic stream
  wmm_ac_status = show status for Wireless Multi-Media Admission-Control
  tdls_chan_switch <addr> <oper class> <freq> [sec_channel_offset=] [center_freq1=] [center_freq2=] [bandwidth=] [ht|vht] = enable channel switching with TDLS peer
  tdls_cancel_chan_switch <addr> = disable channel switching with TDLS peer <addr>
  signal_poll = get signal parameters
  signal_monitor = set signal monitor parameters
  pktcnt_poll = get TX/RX packet counters
  reauthenticate = trigger IEEE 802.1X/EAPOL reauthentication
  wnm_sleep <enter/exit> [interval=#] = enter/exit WNM-Sleep mode
  wnm_bss_query <query reason> [list] = Send BSS Transition Management Query
  raw <params..> = Sent unprocessed command
  flush = flush wpa_supplicant state
  driver <command> = driver private commands
  radio_work = radio_work <show/add/done>
  vendor <vendor id> <command id> [<hex formatted command argument>] = Send vendor command
  neighbor_rep_request [ssid=<SSID>] = Trigger request to AP for neighboring AP report (with optional given SSID, default: current SSID)
  erp_flush = flush ERP keys
  mac_rand_scan <scan|sched|pno|all> enable=<0/1> [addr=mac-address mask=mac-address-mask] = scan MAC randomization
  get_pref_freq_list <interface type> = retrieve preferred freq list for the specified interface type
  p2p_lo_start <freq> <period> <interval> <count> = start P2P listen offload
  p2p_lo_stop = stop P2P listen offload
 

borg17a

Senior Member
Aug 18, 2010
261
27
Thank you for your great work!

With you our Touchpad is still usable. That's even better when you think of an device like the IPad Mini 1 from 2012 I started to play with which is almost unusable even with jailbreak!
 

meelo88

Member
Jan 30, 2008
24
0
Southern California
I just found this version and installed it on my touchpad and it works great! Sadly, I use it mostly as an alarm lock more than anything else but it's smooth enough for light browsing if needed. Thanks!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    Evervolv 7.1.2 for HP Touchpad (tenderloin)

    I have just built it from source, integrated Wi-Fi fixes I made for Amazon Kindle Fire HDX earlier, replaced the Wi-Fi driver with the one from backports-5.9.12-1.tar.gz, and tweaked memory settings. Now it sees more 5 GHz channels, automatically reconnects on connection loss, works properly when AP/router uses the same MAC address for 2.4 GHz and 5 GHz.

    Bluetooth works.
    The camera more or less works in some applications.

    Feel free to test and report bugs.

    If you intend to install GApps, I suggest disabling unused "heavy" applications like "Google".


    Whatsnew:

    2021-12-05 Removed "Phone" and "EVUpdater" (waste of RAM), increased per-app
    Java heap limits (e. g. NewPipe works now).

    2021-11-08 Latest Wi-Fi driver & fixes.

    Kernel source:
    https://github.com/Evervolv/android_kernel_htc_msm8960.git (branch "evervolv/ng-7.1")

    Device tree:
    https://github.com/Evervolv/android_device_hp_tenderloin-common.git (branch "evervolv/ng-7.1")
    4
    How to make Android WIFI to automatically keep the connection alive even if it gets disconnected or the router reboots.
    Take total control of your WIFI: All the commands available.
    https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf
    To test, connect Tablet to PC open a terminal and use ADB Shell.
    Code:
    wpa_cli -p /data/misc/wpa_supplicant

    Code:
    adb shell
    tenderloin:/ # wpa_cli -p /data/misc/wpa_supplicant
    wpa_cli v2.6-devel-7.1.2
    Copyright (c) 2004-2016, Jouni Malinen <[email protected]> and contributors
    
    This software may be distributed under the terms of the BSD license.
    See README for more details.
    
    
    Using interface 'wlan0'
    
    Interactive mode
    
    >

    Now all commands can be enter to override the system settings and control the WIFI driver directly.
    List of the most important commands to enter in interactive mode:
    Code:
    IFNAME=wlan0 scan
    disable_network list_networks
    IFNAME=wlan0 disable_network 0
    IFNAME=wlan0 enable_network 0
    IFNAME=wlan0 reconnect
    IFNAME=wlan0 add_network 0
    IFNAME=wlan0 set_network 0 auth_alg OPEN
    IFNAME=wlan0 set_network 0 ssid " "
    IFNAME=wlan0 select_network 0
    IFNAME=wlan0 enable_network 0
    IFNAME=wlan0 reassociate
    IFNAME=wlan0 status
    IFNAME=wlan0 save_config

    Example:
    Code:
    > IFNAME=wlan0 scan
    OK
    IFNAME=wlan0 <3>CTRL-EVENT-SCAN-STARTED
    IFNAME=wlan0 <3>CTRL-EVENT-SCAN-RESULTS

    Command to reassociate to the already connected network every 10 minutes ( or any time interval you want )
    Enter entire command after the ADB Shell prompt:

    Code:
    wpa_cli -p /data/misc/wpa_supplicant -i wlan0 IFNAME=wlan0 reassociate scan_interval 10

    The command can be run automatically as a script at boot time to run every 30 minutes as follow:
    Code:
    watch -n 30 wpa_cli -p /data/misc/wpa_supplicant -i wlan0 IFNAME=wlan0 reassociate scan_interval 10 &


    All available commands:
    Code:
     status [verbose] = get current WPA/EAPOL/EAP status
      ifname = get current interface name
      ping = pings wpa_supplicant
      relog = re-open log-file (allow rolling logs)
      note <text> = add a note to wpa_supplicant debug log
      mib = get MIB variables (dot1x, dot11)
      help [command] = show usage help
      interface [ifname] = show interfaces/select interface
      level <debug level> = change debug level
      license = show full wpa_cli license
      quit = exit wpa_cli
      set = set variables (shows list of variables when run without arguments)
      dump = dump config variables
      get <name> = get information
      logon = IEEE 802.1X EAPOL state machine logon
      logoff = IEEE 802.1X EAPOL state machine logoff
      pmksa = show PMKSA cache
      pmksa_flush = flush PMKSA cache entries
      reassociate = force reassociation
      reattach = force reassociation back to the same BSS
      preauthenticate <BSSID> = force preauthentication
      identity <network id> <identity> = configure identity for an SSID
      password <network id> <password> = configure password for an SSID
      new_password <network id> <password> = change password for an SSID
      pin <network id> <pin> = configure pin for an SSID
      otp <network id> <password> = configure one-time-password for an SSID
      passphrase <network id> <passphrase> = configure private key passphrase
        for an SSID
      sim <network id> <pin> = report SIM operation result
      bssid <network id> <BSSID> = set preferred BSSID for an SSID
      blacklist <BSSID> = add a BSSID to the blacklist
      blacklist clear = clear the blacklist
      blacklist = display the blacklist
      log_level <level> [<timestamp>] = update the log level/timestamp
      log_level = display the current log level and log options
      list_networks = list configured networks
      select_network <network id> = select a network (disable others)
      enable_network <network id> = enable a network
      disable_network <network id> = disable a network
      add_network = add a network
      remove_network <network id> = remove a network
      set_network <network id> <variable> <value> = set network variables (shows
        list of variables when run without arguments)
      get_network <network id> <variable> = get network variables
      dup_network <src network id> <dst network id> <variable> = duplicate network variables
      list_creds = list configured credentials
      add_cred = add a credential
      remove_cred <cred id> = remove a credential
      set_cred <cred id> <variable> <value> = set credential variables
      get_cred <cred id> <variable> = get credential variables
      save_config = save the current configuration
      disconnect = disconnect and wait for reassociate/reconnect command before
        connecting
      reconnect = like reassociate, but only takes effect if already disconnected
      scan = request new BSS scan
      scan_results = get latest scan results
      abort_scan = request ongoing scan to be aborted
      bss <<idx> | <bssid>> = get detailed scan result info
      get_capability <eap/pairwise/group/key_mgmt/proto/auth_alg/channels/freq/modes> = get capabilities
      reconfigure = force wpa_supplicant to re-read its configuration file
      terminate = terminate wpa_supplicant
      interface_add <ifname> <confname> <driver> <ctrl_interface> <driver_param>
        <bridge_name> <create> <type> = adds new interface, all parameters but
        <ifname> are optional. Supported types are station ('sta') and AP ('ap')
      interface_remove <ifname> = removes the interface
      interface_list = list available interfaces
      ap_scan <value> = set ap_scan parameter
      scan_interval < 2 > = set scan_interval parameter (in seconds)
      bss_expire_age <value> = set BSS expiration age parameter
      bss_expire_count <value> = set BSS expiration scan count parameter
      bss_flush <value> = set BSS flush age (0 by default)
      ft_ds <addr> = request over-the-DS FT with <addr>
      wps_pbc [BSSID] = start Wi-Fi Protected Setup: Push Button Configuration
      wps_pin <BSSID> [PIN] = start WPS PIN method (returns PIN, if not hardcoded)
      wps_check_pin <PIN> = verify PIN checksum
      wps_cancel Cancels the pending WPS operation
      wps_nfc [BSSID] = start Wi-Fi Protected Setup: NFC
      wps_nfc_config_token <WPS|NDEF> = build configuration token
      wps_nfc_token <WPS|NDEF> = create password token
      wps_nfc_tag_read <hexdump of payload> = report read NFC tag with WPS data
      nfc_get_handover_req <NDEF> <WPS> = create NFC handover request
      nfc_get_handover_sel <NDEF> <WPS> = create NFC handover select
      nfc_report_handover <role> <type> <hexdump of req> <hexdump of sel> = report completed NFC handover
      wps_reg <BSSID> <AP PIN> = start WPS Registrar to configure an AP
      wps_ap_pin [params..] = enable/disable AP PIN
      wps_er_start [IP address] = start Wi-Fi Protected Setup External Registrar
      wps_er_stop = stop Wi-Fi Protected Setup External Registrar
      wps_er_pin <UUID> <PIN> = add an Enrollee PIN to External Registrar
      wps_er_pbc <UUID> = accept an Enrollee PBC using External Registrar
      wps_er_learn <UUID> <PIN> = learn AP configuration
      wps_er_set_config <UUID> <network id> = set AP configuration for enrolling
      wps_er_config <UUID> <PIN> <SSID> <auth> <encr> <key> = configure AP
      wps_er_nfc_config_token <WPS/NDEF> <UUID> = build NFC configuration token
      ibss_rsn <addr> = request RSN authentication with <addr> in IBSS
      sta <addr> = get information about an associated station (AP)
      all_sta = get information about all associated stations (AP)
      deauthenticate <addr> = deauthenticate a station
      disassociate <addr> = disassociate a station
      chan_switch <cs_count> <freq> [sec_channel_offset=] [center_freq1=] [center_freq2=] [bandwidth=] [blocktx] [ht|vht] = CSA parameters
      suspend = notification of suspend/hibernate
      resume = notification of resume/thaw
      roam <addr> = roam to the specified BSS
      p2p_find [timeout] [type=*] = find P2P Devices for up-to timeout seconds
      p2p_stop_find = stop P2P Devices search
      p2p_asp_provision <addr> adv_id=<adv_id> conncap=<conncap> [info=<infodata>] = provision with a P2P ASP Device
      p2p_asp_provision_resp <addr> adv_id=<adv_id> [role<conncap>] [info=<infodata>] = provision with a P2P ASP Device
      p2p_connect <addr> <"pbc"|PIN> [ht40] = connect to a P2P Device
      p2p_listen [timeout] = listen for P2P Devices for up-to timeout seconds
      p2p_group_remove <ifname> = remove P2P group interface (terminate group if GO)
      p2p_group_add [ht40] = add a new P2P group (local end as GO)
      p2p_group_member <dev_addr> = Get peer interface address on local GO using peer Device Address
      p2p_prov_disc <addr> <method> = request provisioning discovery
      p2p_get_passphrase = get the passphrase for a group (GO only)
      p2p_serv_disc_req <addr> <TLVs> = schedule service discovery request
      p2p_serv_disc_cancel_req <id> = cancel pending service discovery request
      p2p_serv_disc_resp <freq> <addr> <dialog token> <TLVs> = service discovery response
      p2p_service_update = indicate change in local services
      p2p_serv_disc_external <external> = set external processing of service discovery
      p2p_service_flush = remove all stored service entries
      p2p_service_add <bonjour|upnp|asp> <query|version> <response|service> = add a local service
      p2p_service_rep asp <auto> <adv_id> <svc_state> <svc_string> [<svc_info>] = replace local ASP service
      p2p_service_del <bonjour|upnp> <query|version> [|service] = remove a local service
      p2p_reject <addr> = reject connection attempts from a specific peer
      p2p_invite <cmd> [peer=addr] = invite peer
      p2p_peers [discovered] = list known (optionally, only fully discovered) P2P peers
      p2p_peer <address> = show information about known P2P peer
      p2p_set <field> <value> = set a P2P parameter
      p2p_flush = flush P2P state
      p2p_cancel = cancel P2P group formation
      p2p_unauthorize <address> = unauthorize a peer
      p2p_presence_req [<duration> <interval>] [<duration> <interval>] = request GO presence
      p2p_ext_listen [<period> <interval>] = set extended listen timing
      p2p_remove_client <address|iface=address> = remove a peer from all groups
      vendor_elem_add <frame id> <hexdump of elem(s)> = add vendor specific IEs to frame(s)
        0: Probe Req (P2P), 1: Probe Resp (P2P) , 2: Probe Resp (GO), 3: Beacon (GO), 4: PD Req, 5: PD Resp, 6: GO Neg Req, 7: GO Neg Resp, 8: GO Neg Conf, 9: Inv Req, 10: Inv Resp, 11: Assoc Req (P2P), 12: Assoc Resp (P2P)
      vendor_elem_get <frame id> = get vendor specific IE(s) to frame(s)
        0: Probe Req (P2P), 1: Probe Resp (P2P) , 2: Probe Resp (GO), 3: Beacon (GO), 4: PD Req, 5: PD Resp, 6: GO Neg Req, 7: GO Neg Resp, 8: GO Neg Conf, 9: Inv Req, 10: Inv Resp, 11: Assoc Req (P2P), 12: Assoc Resp (P2P)
      vendor_elem_remove <frame id> <hexdump of elem(s)> = remove vendor specific IE(s) in frame(s)
        0: Probe Req (P2P), 1: Probe Resp (P2P) , 2: Probe Resp (GO), 3: Beacon (GO), 4: PD Req, 5: PD Resp, 6: GO Neg Req, 7: GO Neg Resp, 8: GO Neg Conf, 9: Inv Req, 10: Inv Resp, 11: Assoc Req (P2P), 12: Assoc Resp (P2P)
      wfd_subelem_set <subelem> [contents] = set Wi-Fi Display subelement
      wfd_subelem_get <subelem> = get Wi-Fi Display subelement
      fetch_anqp = fetch ANQP information for all APs
      stop_fetch_anqp = stop fetch_anqp operation
      interworking_select [auto] = perform Interworking network selection
      interworking_connect <BSSID> = connect using Interworking credentials
      interworking_add_network <BSSID> = connect using Interworking credentials
      anqp_get <addr> <info id>[,<info id>]... = request ANQP information
      gas_request <addr> <AdvProtoID> [QueryReq] = GAS request
      gas_response_get <addr> <dialog token> [start,len] = Fetch last GAS response
      hs20_anqp_get <addr> <subtype>[,<subtype>]... = request HS 2.0 ANQP information
      nai_home_realm_list <addr> <home realm> = get HS20 nai home realm list
      hs20_icon_request <addr> <icon name> = get Hotspot 2.0 OSU icon
      fetch_osu = fetch OSU provider information from all APs
      cancel_fetch_osu = cancel fetch_osu command
      sta_autoconnect <0/1> = disable/enable automatic reconnection
      tdls_discover <addr> = request TDLS discovery with <addr>
      tdls_setup <addr> = request TDLS setup with <addr>
      tdls_teardown <addr> = tear down TDLS with <addr>
      tdls_link_status <addr> = TDLS link status with <addr>
      wmm_ac_addts <uplink/downlink/bidi> <tsid=0..7> <up=0..7> [nominal_msdu_size=#] [mean_data_rate=#] [min_phy_rate=#] [sba=#] [fixed_nominal_msdu] = add WMM-AC traffic stream
      wmm_ac_delts <tsid> = delete WMM-AC traffic stream
      wmm_ac_status = show status for Wireless Multi-Media Admission-Control
      tdls_chan_switch <addr> <oper class> <freq> [sec_channel_offset=] [center_freq1=] [center_freq2=] [bandwidth=] [ht|vht] = enable channel switching with TDLS peer
      tdls_cancel_chan_switch <addr> = disable channel switching with TDLS peer <addr>
      signal_poll = get signal parameters
      signal_monitor = set signal monitor parameters
      pktcnt_poll = get TX/RX packet counters
      reauthenticate = trigger IEEE 802.1X/EAPOL reauthentication
      wnm_sleep <enter/exit> [interval=#] = enter/exit WNM-Sleep mode
      wnm_bss_query <query reason> [list] = Send BSS Transition Management Query
      raw <params..> = Sent unprocessed command
      flush = flush wpa_supplicant state
      driver <command> = driver private commands
      radio_work = radio_work <show/add/done>
      vendor <vendor id> <command id> [<hex formatted command argument>] = Send vendor command
      neighbor_rep_request [ssid=<SSID>] = Trigger request to AP for neighboring AP report (with optional given SSID, default: current SSID)
      erp_flush = flush ERP keys
      mac_rand_scan <scan|sched|pno|all> enable=<0/1> [addr=mac-address mask=mac-address-mask] = scan MAC randomization
      get_pref_freq_list <interface type> = retrieve preferred freq list for the specified interface type
      p2p_lo_start <freq> <period> <interval> <count> = start P2P listen offload
      p2p_lo_stop = stop P2P listen offload
    4
    Uploaded ev_tenderloin-7.1.2-userbuild-2021.12.05.zip (see OP).
    1
    WiFi re-associate ( reconnect ) Fix for Android 7, 8, an 9.

    About 6 months ago I started using some Tablets as a Web Server, Nextcloud, FTP site and WebDav Server.
    Any open ( un-lock ) Android device will do the job, but the HP Touchpad can be completely modified easily and will not brick. Making it the perfect Server, built in battery backup ( no power interruption, always on ) noise free, low power consumption.
    The challenge was how to make the WIFI behave like wire Ethernet connection, it needs to be always ON and reconnect automatically no matter what and low latency. The Tablets were always charging by USB port set up for maximum performance settings.
    First step set the Router to 5 GHz (faster, but short rage ) instead of 2.4 GHz (slower, longer range)
    Attached are the screenshot of the Router:
    w1.png

    w2.png
    w3.png