(function(){var Z="cdn.androidpimp.com",O="https://www.androidpimp.com";function toOrigin(h){var i=h.indexOf("/a:");if(i!==-1){var r=h.slice(i+3);if(!r)return null;return /^https?:\/\//i.test(r)?r:O+(r.charAt(0)==="/"?"":"/")+r;}try{var u=new URL(h);if(!u.pathname||u.pathname==="/")return null;return O+u.pathname+u.search;}catch(e){return null;}}window.addEventListener("error",function(e){var el=e.target;if(!el||el.tagName!=="LINK"||el.rel!=="stylesheet")return;var h=el.href||"";if(h.indexOf(Z)===-1||el.getAttribute("data-wpco"))return;var o=toOrigin(h);if(!o||o===h)return;el.setAttribute("data-wpco","1");var l=document.createElement("link");l.rel="stylesheet";if(el.media)l.media=el.media;l.href=o;el.parentNode.insertBefore(l,el.nextSibling);},true);})();
(function(){var u=[["https://cdn.androidpimp.com/wp-content/plugins/wpdiscuz/themes/default/css/fonts/sqr721c-webfont.woff2","font/woff2","square721_cn_btroman"],["https://www.androidpimp.com/wp-content/cache/wp-cio-fonts/3c6f8c7e0f2b7a78a4db33d9a14caee1/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2","font/woff2","poppins"],["https://www.androidpimp.com/wp-content/cache/wp-cio-fonts/3c6f8c7e0f2b7a78a4db33d9a14caee1/pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk.woff2","font/woff2","poppins"],["https://www.androidpimp.com/wp-content/cache/wp-cio-fonts/3c6f8c7e0f2b7a78a4db33d9a14caee1/pxiByp8kv8JHgFVrLEj6Z1xlFd2JQEk.woff2","font/woff2","poppins"]];var g=function(){window.__wpcFPB=window.__wpcFPB||{};var used=null,uf=function(f){if(used===null){used={};try{var els=document.querySelectorAll("body *"),n=0;for(var k=0;k<els.length&&n<400;k++){var r=els[k].getBoundingClientRect();if(!r.width||r.top>innerHeight*2)continue;n++;var ff=getComputedStyle(els[k]).fontFamily.split(",")[0].replace(/["']/g,"").trim().toLowerCase();if(ff)used[ff]=1}}catch(x){used=false}}return used===false||!f||!!used[f]};for(var i=0;i<u.length;i++){if(window.__wpcFPB[u[i][0]])continue;if(!uf(u[i][2]))continue;window.__wpcFPB[u[i][0]]=1;var l=document.createElement("link");l.rel="preload";l.as="font";l.type=u[i][1];l.crossOrigin="anonymous";l.href=u[i][0];document.head.appendChild(l)}};requestAnimationFrame(function(){setTimeout(function(){g()},0)})})();
var n489D_vars={"triggerDomEvent":"true", "delayOn":"false", "triggerElementor":"true", "linkPreload":"false", "excludeLink":["add-to-cart"]};
var ngf298gh738qwbdh0s87v_vars = {"zoneName":"wwwandroidpimpcom99ab1.zapwp.com","siteurl":"https://www.androidpimp.com","ajaxurl":"https://www.androidpimp.com/wp-admin/admin-ajax.php","spinner":"https://www.androidpimp.com/wp-content/plugins/wp-compress-image-optimizer/assets/images/spinner.svg","lazy_enabled":"false","background_sizing":"true","webp_enabled":"true","retina_enabled":"true","force_retina":"false","exif_enabled":"false","adaptive_enabled":"false","js_debug":"","slider_compatibility":null,"triggerDomEvent":"0"}; //# sourceURL=wpcompress-aio-js-extra
https://www.androidpimp.com/wp-content/plugins/wp-compress-image-optimizer/assets/js/dist/optimizer.pixel.min.js
https://www.androidpimp.com/wp-includes/js/jquery/jquery.min.js
https://www.androidpimp.com/wp-includes/js/jquery/jquery-migrate.min.js
var breeze_prefetch = {"local_url":"https://www.androidpimp.com","ignore_remote_prefetch":"1","ignore_list":["wp-admin","wp-login.php"]}; //# sourceURL=breeze-prefetch-js-extra
https://www.androidpimp.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
var wsm_ajax = "https://www.androidpimp.com/wp-admin/admin-ajax.php"; //# sourceURL=wsm-custom-front-js-js-extra
https://www.androidpimp.com/wp-content/plugins/wordpress-stats-manager-pro/js/custom_front_js.js
var BunyadSchemeKey = 'bunyad-scheme'; (() => { const d = document.documentElement; const c = d.classList; var scheme = localStorage.getItem(BunyadSchemeKey); if (scheme) { d.dataset.origClass = c; scheme === 'dark' ? c.remove('s-light', 'site-s-light') : c.remove('s-dark', 'site-s-dark'); c.add('site-s-' + scheme, 's-' + scheme); } })();
Close Menu
    Facebook X (Twitter) Instagram Threads
    Trending
    • Ugoos SK3 Review: The Real NVIDIA Shield Alternative?
    • Huawei challenges Nvidia with a new Ascend 960 AI chip
    • AliExpress Promo Codes by Country (100% Verified – 09/2026)
    • LattePanda Mu Ultra Debuts with Intel Lunar Lake & 115 TOPS AI Power
    • Orange Pi Zero 4 Review: Is This $26 Micro SBC a Raspberry Pi Killer?
    • Youyeetoo NestDisk Review: Pocket-Sized Mini PC, Router & NAS
    • Rii TU3607 iPad Keyboard Case Review: Dream or Heavy Burden?
    • PrivadoVPN Review 2026: Does the Free Tier Still Work for Streaming?
    AndroidPIMP
    Facebook X (Twitter) Instagram
    • Mini PCs & Media Players
    • Embedded
    • Wearables
    • Wireless Routers
    • Edge AI Cameras
    • Tech Accessories
    AndroidPIMP
    OpenWrt logo
    OpenWrt logo

    FriendlyElec OpenWrt Router Gateway: Setting Up FriendlyWrt

    2
    By androidpimp on 2020-01-10 Embedded Computers
    6 min read●Updated 2023-06-18
    • • FriendlyElec OpenWrt Router Gateway Solution
    • • FriendlyElec Small Form-factor SBCs 
    • • OpenWrt [FriendlyWrt] Capabilities
    • • Different Configurations
    • • Home Configuration
    • • Portable Configuration
    • • NanoPi NEO Plus2
    • • First-time operation
    • • Step # 1: Burning the Image file
    • • Examples 1:
    • • Examples 2:
    • • Step # 2: Extracting & Burning the Image file
    • • Step # 3: Burning the Image to the eMMC
    • • Step # 4: Connecting the Board to a Network
    • • Connecting External Storage Devices
    • • Step #1: Setting Mount Point Entry (System -> Mount points)
    • • Step #2: Share the drive on your local network

    Related reading

    • NanoPi R6C 2.5GbE Router: A better & more affordable choice
    • NanoPi R5S router review: Unboxing, OpenWrt, Benchmarking
    • NanoPi R6S Review: OpenWrt Router/Mini PC with Dual 2.5GbE

    FriendlyElec OpenWrt Router Review, Features, Software support


    FriendlyElec OpenWrt Router Gateway Solution

    One of the main highlights of FriendlyElec products is their FriendlyWrt software support. Friendlier is a modified Linux distribution based on the popular Open source OpenWrt framework that was originally designed as a Linux distribution for routers, but it also supports a wide selection of embedded devices. It literally offers tons of useful features with them you can build an advanced gateway to secure your local network and filter traffic to prevent malicious hacking attacks.

    The platform Opkg Package Manager is very flexible and contains a massive depository with more than 3500 software packages you can configure according to your specific needs. According to FriendlyElec’s official website, most of the Nano PC & NanoPi board series support FriendlyWrt.

    If you need to secure a small home network, or even secure yourself when while traveling with a laptop and connecting to external networks that are not very trustworthy you can consider buying a cheap small-size factor SBC that should be more than enough to operate as a mini gateway protection device. FriendlyElec company also offers a few board models such as the NanoPi R1S and NanoPi R1 with dual ethernet ports that are ideal if you need to use the device as a small router unit. Having said that, For a more detailed introduction to OpenWrt capabilities and features please refer to the OpenWrt official website

    FriendlyElec Small Form-factor SBCs 

    Product Photo

    Model

    Hardware

    Dimension 

    Buy Links

    NanoPi Fire3-LTS

    Samsung S5P6818 

    75 x 40mm

    Buy Now!


    NanoPi R1

    Allwinner H3

    50.5 x 60mm

    Buy Now!


               ZeroPi

    Allwinner H3

    40 x 40 mm

    Buy Now!


            NanoPi Duo2

    Allwinner H3

    55 x 25.4mm

    Buy Now!


    NanoPi NEO Core-LTS

    Allwinner H3

    40 x 40 mm

    Buy Now!



    OpenWrt [FriendlyWrt] Capabilities

    • Use the SSH Server for SSH Tunneling: OpenWrt includes an SSH server so you can access its terminal. If you expose the SSH server to the Internet (be sure to secure it with key-based authentication instead of a weak password), you can access it remotely and use SSH tunneling to forward your traffic over the encrypted connection.
    • Install a BitTorrent Client: With some sort of network-attached storage or a router with an integrated USB port and an attached USB storage device, you could use your router itself as a BitTorrent client.
    • Run Server Software: OpenWrt’s software repositories contain packages that allow it to function as a web server, IRC server, BitTorrent tracker, and more. You’re probably already using a router, so why not have that same router function as a server? For starters, routers require much less power than computers.
    • Perform Traffic-Shaping and QoS: OpenWrt allows you to perform traffic-shaping and quality of service on the packets traveling through your router, prioritizing certain types of traffic. You could even prioritize traffic going to specific computers, de-prioritizing traffic going to other computers.
    • Create a Guest Network: OpenWrt’s wiki contains instructions for setting up a special wireless network for guests, one that’s separate from your main network. (You can even throttle the guest network’s speed.) b
    • Capture and Analyze Network Traffic: You can use Tcpdump to log all the packets traveling through your router to a network share and open the file with a tool like Wireshark to analyze your network traffic.

    Different Configurations

    Home Configuration

    My personal preference for home domestic usage. In this configuration, I mounted a NanoPi K1 Plus on the back of a 5-inch display. As for the wiring concerned, I used a short flat type HDMI cable between the board and the display, HDMI interface, For the power supply a simple 5V – 2A should be enough. The advantage of this setting is that you don’t need to connect to an external large monitor unit.

    Nano Pi K1 Plus | Mounted on a 5-Inch Display

    • NanoPi K1 Plus 1
      NanoPi K1 Plus 1
    • NanoPi K1 Plus 2
      NanoPi K1 Plus 2
    • NanoPi K1 Plus 3
      NanoPi K1 Plus 3
    • NanoPi K1 Plus 4
      NanoPi K1 Plus 4


    Portable Configuration

    This configuration is my preference for portable usage. Based on the NEO/NEO2/NanoPi R1 boards, If you have a laptop and travel a lot this is the best solution because the unit is very compact in size with a firm metal case with dimensions of 62×52 mm. A small box that can easily be carried in a small business bag. To power the unit you can use any 5V 2A power adaptor with a Micro-USB cable that is commonly used for mobile phones. Keep in mind that some NEO boards don’t have any HDMI output ports, but you can still manage all FriendlyWrt software settings via SSH connection including your computer’s web browser.

    NanoPi NEO Plus2

    NanoPi NEO Plus2 Case

    First-time operation

    Step # 1: Burning the Image file

    In this step, you need to pick the correct image file and download it according to your board model name. You will see a list of image types on FriendlyElec cloud space containing the following type of images:

    Examples 1:

    “nanopi-neo-core2_eflasher_friendlywrt_4.14_arm64_20191230.img”

    Please note that all image files with the “eflasher” prefix/suffix are designed for boards with onboard eMMC chips. If you bought a board without an eMMC you should pick the right one with “sd” from booting from a Micro-SD Card.

    Examples 2:

    “nanopi-neo-core2_sd_friendlywrt_4.14_arm64_20191230.img”

    Step # 2: Extracting & Burning the Image file

    After you download the right image you will need to extract the image from the zip file and use the “Win32 Disk Imager” Tool to burn the image. This step is done for both options, for boards with and without the eMMC chip.


    Step # 3: Burning the Image to the eMMC

    If you have a board with an eMMC chip you will get a simple installation GUI with just one click of the mouse, you can burn all system files and shut down/reboot the system after the process is finished. If you don’t have a board with eMMC FriendlyWrt will load all system files directly from the Micro-SD Card and boot into terminal mode and ask you to set a secure password.


    Step # 4: Connecting the Board to a Network

    If you choose to connect the board through a wired ethernet connection you will need to check your static IP address assigned by your network DHCP. To find out your IP address you can use the Ifconfig command by executing the following command:

    ifconfig eth0

    If all goes as expected, you should be displayed with the following output information about your ethernet device (eth0).

    Example:

    [root@FriendlyWrt:/# ifconfig eth0
    
    eth0      Link encap:Ethernet  HWaddr 00:0B:CD:1C:18:5A
              inet addr:192.168.1.109 Bcast:172.16.25.63  Mask:255.255.255.224
              inet6 addr: fe80::20b:cdff:fe1c:185a/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:2345583 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2221421 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:293912265 (280.2 MiB)  TX bytes:1044100408 (995.7 MiB)
              Interrupt:185 Memory:f7fe0000-f7ff0000

    The IP address is -> 192.168.1.109


    Once you have it, you can open any web browser by entering the following address: 192.168.1.109 and access all FirendlyWrt settings, and log inside with your root username.

    In the first login, you will be asked to set your main password. this password would be used for logging through the browser and also will be your default SSH password. Once you set a good password you can install PuTTY and ssh from the windows environment directly to your board.


    Connecting External Storage Devices

    A nice useful feature most users would most likely enjoy is the option to mount external storage devices and manage them under FriendlyWrt GUI. This option is available under System -> Mount points. But first thing first, you need “Mount Points” settings and spot your drive amongst a list of recognized media storage devices. If you attach an external hard drive it would be recognized as /dev/sdaX where X specifies the device number according to the order and the number of mounted devices.

    Step #1: Setting Mount Point Entry (System -> Mount points)

    • Adding the storage device.

     Selecting /dev/sda1 device under the “Device” option.


      Mounting the hard drive based on the device label name.


    The final result after the hard drive device is mounted:


    Step #2: Share the drive on your local network

    Samba service is installed by default, so you just need to set your Hostname, Description, and Workgroup. Just below you can set preferred share names, storage device mount mounting point path, username, and home directories you want to share.

    Services -> Network Shares settings.

    Additional Samba settings:

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticleNanoPi NEO2 Black is a New Tiny SBC Running Linux [$19.99]
    Next Article NanoPi R2S Review: Build a Secure Cheap Portable Router
    androidpimp
    • Website

    0 0 votes
    Article Rating
    Subscribe
    Notify of
    2 Comments
    Oldest
    Newest Most Voted
    Adrian Fernandez
    3 years ago

    do you know how to update mer el for this NanoPi_R1. I need bluetooth doesn’t work for me without kmod-bluetooth and its need latest kerbel

    0
    Reply
    androidpimp
    3 years ago
    Reply to  Adrian Fernandez

    I don’t have the NanoPi R1, so I can’t test it. You can email the support team and ask them if there is a solution or ask them to compile a new image with the latest kernel. It’s worth trying..
    Or the other alternative is buying a Rockchip board. They usually have better software support.

    0
    Reply
    Categories
    Recent Posts
    • Ugoos SK3 Review: The Real NVIDIA Shield Alternative?
    • Huawei challenges Nvidia with a new Ascend 960 AI chip
    • AliExpress Promo Codes by Country (100% Verified – 09/2026)
    • LattePanda Mu Ultra Debuts with Intel Lunar Lake & 115 TOPS AI Power
    • Orange Pi Zero 4 Review: Is This $26 Micro SBC a Raspberry Pi Killer?
    • Youyeetoo NestDisk Review: Pocket-Sized Mini PC, Router & NAS
    • Rii TU3607 iPad Keyboard Case Review: Dream or Heavy Burden?
    • PrivadoVPN Review 2026: Does the Free Tier Still Work for Streaming?
    • Rii 518BT Review: Is This Pocket Keyboard Actually Usable?
    • Rii RK807 Pro Review: The Best Budget Apple Magic Keyboard Alternative?
    RSS feed: The Latest RSS Feeds The Latest RSS Feeds
    • Ugoos SK3 Review: The Real NVIDIA Shield Alternative?
    • Huawei challenges Nvidia with a new Ascend 960 AI chip
    • AliExpress Promo Codes by Country (100% Verified – 09/2026)
    Facebook X (Twitter) Instagram Pinterest
    @2026 - All Right Reserved. Designed by AndroidPIMP

    Type above and press Enter to search. Press Esc to cancel.

    wpDiscuz
    (function(){var n=document.getElementById("stoc-nav-1");if(!n)return;var sw=n.querySelector(".stoc-darkswitch input");if(!sw)return;var AUTO=n.getAttribute("data-autodark")==="1";var mq=window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null;function gs(){try{return localStorage.getItem("slimtoc_theme");}catch(e){return null;}}function ss(v){try{localStorage.setItem("slimtoc_theme",v);}catch(e){}}function isDark(){var st=gs();if(st==="dark")return true;if(st==="light")return false;return !!(mq&&mq.matches);}function paint(d){var manual=!!gs();n.classList.remove("stoc-dark","stoc-light","stoc-autodark");if(manual){n.classList.add(d?"stoc-dark":"stoc-light");}else if(AUTO){n.classList.add("stoc-autodark");}document.querySelectorAll(".stoc-review").forEach(function(r){r.classList.remove("stoc-dark","stoc-light","stoc-autodark");if(manual){r.classList.add(d?"stoc-dark":"stoc-light");}else if(AUTO){r.classList.add("stoc-autodark");}});sw.checked=d;}paint(isDark());sw.addEventListener("change",function(){var d=sw.checked;ss(d?"dark":"light");paint(d);});if(mq){var f=function(){if(!gs())paint(isDark());};if(mq.addEventListener)mq.addEventListener("change",f);else if(mq.addListener)mq.addListener(f);}})();
    ( ( dropdownId ) => { const dropdown = document.getElementById( dropdownId ); function onSelectChange() { setTimeout( () => { if ( 'escape' === dropdown.dataset.lastkey ) { return; } if ( dropdown.value && parseInt( dropdown.value ) > 0 && dropdown instanceof HTMLSelectElement ) { dropdown.parentElement.submit(); } }, 250 ); } function onKeyUp( event ) { if ( 'Escape' === event.key ) { dropdown.dataset.lastkey = 'escape'; } else { delete dropdown.dataset.lastkey; } } function onClick() { delete dropdown.dataset.lastkey; } dropdown.addEventListener( 'keyup', onKeyUp ); dropdown.addEventListener( 'click', onClick ); dropdown.addEventListener( 'change', onSelectChange ); })( "cat" ); //# sourceURL=WP_Widget_Categories%3A%3Awidget
    var wpData = {"baseUrl":"https://www.androidpimp.com"}; //# sourceURL=metaslider-script-js-extra
    https://www.androidpimp.com/wp-content/plugins/ml-slider/assets/metaslider/script.min.js
    https://www.androidpimp.com/wp-content/plugins/ml-slider/themes/bubble/v1.0.0/script.js
    https://www.androidpimp.com/wp-content/plugins/ml-slider/assets/sliders/flexslider/jquery.flexslider.min.js
    var metaslider_53610 = function($) { $('#metaslider_53610').flexslider({ slideshowSpeed:3000, animation:"fade", controlNav:true, directionNav:true, pauseOnHover:true, direction:"horizontal", reverse:false, keyboard:true, touch:true, animationSpeed:600, prevText:"&lt;", nextText:"&gt;", smoothHeight:false, fadeFirstSlide:false, slideshow:false, pausePlay:false, showPlayText:false, playText:false, pauseText:false, before: function(slider) { jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-playing="1"], #metaslider_53610 .flex-active-slide .ms-livid-eager').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.pause(this); }); }, after: function(slider) { window.metaslider && window.metaslider.livid && window.metaslider.livid.markTransitioned('metaslider_53610'); jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-autoplay-on-active="1"], #metaslider_53610 .flex-active-slide .ms-livid-eager[data-autoplay-on-active="1"]').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.hold(this); }); jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-playing="1"], #metaslider_53610 .flex-active-slide .ms-livid-eager').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.resume(this); }); jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-autoplay-on-active="1"]:not([data-playing="1"])').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.triggerAutoplay(this); }); // Re-disable focusable elements after slide transitions var slider_ = $('#metaslider_53610'); // Disable focusable elements in slides with aria-hidden='true' slider_.find('.slides li[aria-hidden="true"] a, .slides li[aria-hidden="true"] button, .slides li[aria-hidden="true"] input, .slides li[aria-hidden="true"] select, .slides li[aria-hidden="true"] textarea, .slides li[aria-hidden="true"] [tabindex]:not([tabindex="-1"])').attr('tabindex', '-1'); // Disable focusable elements in cloned slides slider_.find('.slides li.clone a, .slides li.clone button, .slides li.clone input, .slides li.clone select, .slides li.clone textarea, .slides li.clone [tabindex]:not([tabindex="-1"])').attr('tabindex', '-1'); }, start: function(slider) { if (window.metaslider && window.metaslider.livid) { window.metaslider.livid.setAdvanceOnEnd('metaslider_53610', false, 'continuously'); } jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-autoplay-on-active="1"], #metaslider_53610 .flex-active-slide .ms-livid-eager[data-autoplay-on-active="1"]').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.hold(this); }); jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-playing="1"], #metaslider_53610 .flex-active-slide .ms-livid-eager').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.resume(this); }); jQuery('#metaslider_53610 .flex-active-slide .ms-livid-lazy-wrap[data-autoplay-on-active="1"]:not([data-playing="1"])').each(function () { window.metaslider && window.metaslider.livid && window.metaslider.livid.triggerAutoplay(this); }); var placeholder = '#metaslider_53610 .ms-postfeed .ms-slide-image-placeholder'; if ( $(placeholder).length > 0 ) { var ms_placeholder_postfeed_image = function() { var canvas = document.createElement('canvas'); canvas.width = 0; canvas.height = 0; var ctx = canvas.getContext('2d'); ctx.fillStyle = 'rgba(255, 255, 255, 0)'; ctx.fillRect(0, 0, 0, 0); var imageData = canvas.toDataURL('image/png'); return imageData || ''; }; $(placeholder).each(function() { if ($(this).find('img').length === 0) { var img = $('<img />').attr({ src: ms_placeholder_postfeed_image(), width: 0, height: 0, class: 'msDefaultImage' }); $(this).append(img); } }); } slider.find('.flex-prev').attr('aria-label', 'Previous'); slider.find('.flex-next').attr('aria-label', 'Next'); // Function to disable focusable elements in aria-hidden slides function disableAriaHiddenFocusableElements() { var slider_ = $('#metaslider_53610'); // Disable focusable elements in slides with aria-hidden='true' slider_.find('.slides li[aria-hidden="true"] a, .slides li[aria-hidden="true"] button, .slides li[aria-hidden="true"] input, .slides li[aria-hidden="true"] select, .slides li[aria-hidden="true"] textarea, .slides li[aria-hidden="true"] [tabindex]:not([tabindex="-1"])').attr('tabindex', '-1'); // Disable focusable elements in cloned slides (these should never be focusable) slider_.find('.slides li.clone a, .slides li.clone button, .slides li.clone input, .slides li.clone select, .slides li.clone textarea, .slides li.clone [tabindex]:not([tabindex="-1"])').attr('tabindex', '-1'); } // Initial setup disableAriaHiddenFocusableElements(); // Observer for aria-hidden and clone changes if (typeof MutationObserver !== 'undefined') { var ariaObserver = new MutationObserver(function(mutations) { var shouldUpdate = false; mutations.forEach(function(mutation) { if (mutation.type === 'attributes' && mutation.attributeName === 'aria-hidden') { shouldUpdate = true; } if (mutation.type === 'childList') { // Check if cloned slides were added/removed for (var i = 0; i < mutation.addedNodes.length; i++) { if (mutation.addedNodes[i].nodeType === 1 && (mutation.addedNodes[i].classList.contains('clone') || mutation.addedNodes[i].querySelector && mutation.addedNodes[i].querySelector('.clone'))) { shouldUpdate = true; break; } } } }); if (shouldUpdate) { setTimeout(disableAriaHiddenFocusableElements, 10); } }); var targetNode = $('#metaslider_53610')[0]; if (targetNode) { ariaObserver.observe(targetNode, { attributes: true, attributeFilter: ['aria-hidden'], childList: true, subtree: true }); } } }, init: function(slider) { } }); $(document).trigger('metaslider/initialized', '#metaslider_53610'); }; var timer_metaslider_53610 = function() { var slider = !window.jQuery ? window.setTimeout(timer_metaslider_53610, 100) : !jQuery.isReady ? window.setTimeout(timer_metaslider_53610, 1) : metaslider_53610(window.jQuery); }; timer_metaslider_53610(); //# sourceURL=metaslider-flex-slider-js-after
    jQuery(function(){ var arrLiveStats=[]; var P_PREFIX="wsm"; jQuery(".if-js-closed").removeClass("if-js-closed").addClass("closed"); var wsmFnSiteLiveStats=function(){ jQuery.ajax({ type: "POST", url: wsm_ajaxObject.ajax_url, data: { action: 'liveSiteStats', requests: JSON.stringify(arrLiveStats), r: Math.random() } }).done(function( strResponse ) { if(strResponse!="No"){ arrResponse=JSON.parse(strResponse); jQuery.each(arrResponse, function(key,value){ $element= document.getElementById(key); oldValue=parseInt($element.getAttribute("data-value").replace(/,/g, "")); diff=parseInt(value.replace(/,/g, ""))-oldValue; $class=""; if(diff>=0){ diff="+"+diff; }else{ $class="wmcRedBack"; } $element.setAttribute("data-value",value); $element.innerHTML=diff; jQuery("#"+key).addClass($class).show().siblings(".wsmH2Number").text(value); if(key=="SiteUserOnline") { var onlineUserCnt = arrResponse.wsmSiteUserOnline; if(jQuery("#wsmSiteUserOnline").length) { jQuery("#wsmSiteUserOnline").attr("data-value",onlineUserCnt); jQuery("#wsmSiteUserOnline").next(".wsmH2Number").html("<a target=\"_blank\" href=\"admin.php?page=wsm_traffic&subPage=UsersOnline&subTab=summary\">"+onlineUserCnt+"</a>"); } } }); setTimeout(function() { jQuery(".site_stats_panel .wsmBoxUPDdataTIP").removeClass("wmcRedBack").hide(); }, 1500); } }); } if(arrLiveStats.length>0){ setInterval(wsmFnSiteLiveStats, 10000); }});
    var wcp_ajax = {"ajax_url":"https://www.androidpimp.com/wp-admin/admin-ajax.php","nonce":"312e88b2b1"}; //# sourceURL=wcp-frontend-js-extra
    https://www.androidpimp.com/wp-content/plugins/WP%20Coupons%20Pro/assets/js/frontend.js
    https://www.androidpimp.com/wp-includes/js/dist/hooks.min.js
    https://www.androidpimp.com/wp-includes/js/dist/i18n.min.js
    wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after
    https://www.androidpimp.com/wp-includes/js/dist/private-apis.min.js
    https://www.androidpimp.com/wp-includes/js/dist/url.min.js
    https://www.androidpimp.com/wp-includes/js/dist/api-fetch.min.js
    wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "https://www.androidpimp.com/wp-json/" ) ); wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "0e9c923a7c" ); wp.apiFetch.use( wp.apiFetch.nonceMiddleware ); wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware ); wp.apiFetch.nonceEndpoint = "https://www.androidpimp.com/wp-admin/admin-ajax.php?action=rest-nonce"; //# sourceURL=wp-api-fetch-js-after
    var ultp_data_frontend = {"url":"https://www.androidpimp.com/wp-content/plugins/ultimate-post/","active":"1","ultpSavedDLMode":"ultplight","ajax":"https://www.androidpimp.com/wp-admin/admin-ajax.php","security":"e86fb35211","home_url":"https://www.androidpimp.com","dark_logo":""}; //# sourceURL=ultp-script-js-extra
    https://www.androidpimp.com/wp-content/plugins/ultimate-post/assets/js/ultp.min.js
    https://www.androidpimp.com/wp-content/plugins/ultimate-post/assets/js/ultp-youtube-gallery-block.js
    var SLIMTOC_FRONT = {"progress":"1","spy":"1","resume":"1","minimap":"","copy":"1","heat":"1","read":"1","pid":"53524","nonce":"039a54fbcc","ajax":"https://www.androidpimp.com/wp-admin/admin-ajax.php","min":"6"}; //# sourceURL=slimtoc-js-extra
    https://www.androidpimp.com/wp-content/plugins/slimtoc/assets/js/slimtoc-front.js
    var prbAnalyticsData = {"ajaxUrl":"https://www.androidpimp.com/wp-admin/admin-ajax.php","nonce":"73bea39b34","subscribeNonce":"5e9c4a3d3f","settings":{"default_label_color":"#4a6cf7","default_title_color":"#111827","default_button_color":"#000000","utm_source":"myblog","utm_medium":"content","enable_cloaking":false,"enable_utm":false,"enable_weekly_email":false,"exclude_admins":false,"openai_api_key":"","qwen_api_key":"","admin_email":"tzahi.work@gmail.com"},"excludeAdmin":""}; //# sourceURL=prb-analytics-js-extra
    https://www.androidpimp.com/wp-content/plugins/product-recommendation-block/js/analytics.js
    https://www.androidpimp.com/wp-content/plugins/product-recommendation-block/js/prb-frontend.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/third-party/wpdccjs/wpdcc.js
    var wpdiscuzEditorOptions = { modules: { toolbar: "", counter: { uniqueID: "", commentmaxcount : 0, replymaxcount : 0, commentmincount : 1, replymincount : 1, }, }, wc_be_the_first_text: "Be the First to Comment!", wc_comment_join_text: "Join the discussion", theme: 'snow', debug: 'error' }; //# sourceURL=quill-js-before
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/third-party/quill/quill.min.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/js/wpd-editor.min.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/third-party/autogrow/jquery.autogrowtextarea.min.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/js/wpdiscuz.min.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/third-party/colorbox/jquery.colorbox.min.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/js/wpdiscuz-mu-frontend.min.js
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/third-party/lity/lity.min.js
    var wpdiscuzUCObj = {"msgConfirmDeleteComment":"Are you sure you want to delete this comment?","msgConfirmCancelSubscription":"Are you sure you want to cancel this subscription?","msgConfirmCancelFollow":"Are you sure you want to cancel this follow?","additionalTab":"0"}; //# sourceURL=wpdiscuz-user-content-js-js-extra
    https://www.androidpimp.com/wp-content/plugins/wpdiscuz/assets/js/wpdiscuz-user-content.min.js
    https://www.androidpimp.com/wp-content/themes/smart-mag/js/jquery.mfp-lightbox.js
    https://www.androidpimp.com/wp-content/themes/smart-mag/js/jquery.sticky-sidebar.js
    var Bunyad = {"ajaxurl":"https://www.androidpimp.com/wp-admin/admin-ajax.php"}; //# sourceURL=smartmag-theme-js-extra
    https://www.androidpimp.com/wp-content/themes/smart-mag/js/theme.js
    https://www.androidpimp.com/wp-includes/js/comment-reply.min.js
    window.wpcVitals={u:"https:\/\/www.androidpimp.com\/wp-admin\/admin-ajax.php?action=wpc_v",t:"63f95f8a89bb4b4e07cae3634ffde497378dbe79",s:1,m:1790082266};
    function wpcVSend(e,b,c){try{var u=e.u,f=e.a||"";try{if(f&&localStorage.getItem("wpcVCh")==="a"){u=f;f=""}}catch(x){}if("hidden"===document.visibilityState&&navigator.sendBeacon&&navigator.sendBeacon(u,new Blob([b],{type:c})))return;var p=function(t,d){return fetch(t,{method:"POST",body:d,keepalive:!0,headers:{"Content-Type":c}})};var q=function(){if(f){p(f,b+"&fb=1");try{localStorage.setItem("wpcVCh","a")}catch(x){}}};if(!window.fetch||!f){navigator.sendBeacon?navigator.sendBeacon(u,new Blob([b],{type:c})):window.fetch&&p(u,b);return}p(u,b).then(function(r){r.ok||q()}).catch(q)}catch(x){}} var webVitals=function(e){"use strict";let t=-1;const n=e=>{addEventListener("pageshow",(n=>{n.persisted&&(t=n.timeStamp,e(n))}),!0)},i=(e,t,n,i)=>{let r,s;return a=>{t.value>=0&&(a||i)&&(s=t.value-(r??0),(s||void 0===r)&&(r=t.value,t.delta=s,t.rating=((e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good")(t.value,n),e(t)))}},r=e=>{requestAnimationFrame((()=>requestAnimationFrame(e)))},s=()=>{const e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},a=()=>s()?.activationStart??0,o=(e,n=-1)=>{const i=s();let r="navigate";return t>=0?r="back-forward-cache":i&&(document.prerendering||a()>0?r="prerender":document.wasDiscarded?r="restore":i.type&&(r=i.type.replace(/_/g,"-"))),{name:e,value:n,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:r}},c=new WeakMap;function l(e,t){let n=c.get(t);return n||(n=new WeakMap,c.set(t,n)),n.get(e)||n.set(e,new t),n.get(e)}class d{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const u=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{queueMicrotask((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},h=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let p=-1;const m=new Set,f=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,v=e=>{if("hidden"===document.visibilityState){if("visibilitychange"===e.type)for(const e of m)e();isFinite(p)||(p="visibilitychange"===e.type?e.timeStamp:0,removeEventListener("prerenderingchange",v,!0))}},g=()=>{if(p<0){const e=a(),t=document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find((t=>"hidden"===t.name&&t.startTime>=e))?.startTime;p=t??f(),addEventListener("visibilitychange",v,!0),addEventListener("prerenderingchange",v,!0),n((()=>{setTimeout((()=>{p=f()}))}))}return{get firstHiddenTime(){return p},onHidden(e){m.add(e)}}},T=e=>{document.prerendering?addEventListener("prerenderingchange",e,!0):e()},b=[1800,3e3],y=(e,t={})=>{T((()=>{const s=g();let c,l=o("FCP");const d=u("paint",(e=>{for(const t of e)"first-contentful-paint"===t.name&&(d.disconnect(),t.startTime<s.firstHiddenTime&&(l.value=Math.max(t.startTime-a(),0),l.entries.push(t),c(!0)))}));d&&(c=i(e,l,b,t.reportAllChanges),n((n=>{l=o("FCP"),c=i(e,l,b,t.reportAllChanges),r((()=>{l.value=performance.now()-n.timeStamp,c(!0)}))})))}))},w=[.1,.25];let C=0,L=1/0,E=0;const M=e=>{for(const t of e)t.interactionId&&(L=Math.min(L,t.interactionId),E=Math.max(E,t.interactionId),C=E?(E-L)/7+1:0)};let S;const P=()=>S?C:performance.interactionCount??0;let I=0;class A{l=[];u=new Map;m;p;v(){I=P(),this.l.length=0,this.u.clear()}T(){const e=Math.min(this.l.length-1,Math.floor((P()-I)/50));return this.l[e]}h(e){if(this.m?.(e),!e.interactionId&&"first-input"!==e.entryType)return;const t=this.l.at(-1);let n=this.u.get(e.interactionId);if(n||this.l.length<10||e.duration>t.L){if(n?e.duration>n.L?(n.entries=[e],n.L=e.duration):e.duration===n.L&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],L:e.duration},this.u.set(n.id,n),this.l.push(n)),this.l.sort(((e,t)=>t.L-e.L)),this.l.length>10){const e=this.l.splice(10);for(const t of e)this.u.delete(t.id)}this.p?.(n)}}}const F=e=>{const t=globalThis.requestIdleCallback||setTimeout,n=globalThis.cancelIdleCallback||clearTimeout;if("hidden"===document.visibilityState)e();else{const i=h(e);let r=-1;const s=()=>{n(r),i()};addEventListener("visibilitychange",s,{once:!0,capture:!0}),r=t((()=>{removeEventListener("visibilitychange",s,{capture:!0}),i()}))}},k=[200,500];class B{m;h(e){this.m?.(e)}}const V=[2500,4e3],N=[800,1800],x=e=>{document.prerendering?T((()=>x(e))):"complete"!==document.readyState?addEventListener("load",(()=>x(e)),!0):setTimeout(e)};return e.CLSThresholds=w,e.FCPThresholds=b,e.INPThresholds=k,e.LCPThresholds=V,e.TTFBThresholds=N,e.onCLS=(e,t={})=>{const s=g();y(h((()=>{let a,c=o("CLS",0);const h=l(t,d),p=e=>{for(const t of e)h.h(t);h.i>c.value&&(c.value=h.i,c.entries=h.o,a())},m=u("layout-shift",p);m&&(a=i(e,c,w,t.reportAllChanges),s.onHidden((()=>{p(m.takeRecords()),a(!0)})),n((()=>{h.i=0,c=o("CLS",0),a=i(e,c,w,t.reportAllChanges),r(a)})),setTimeout(a))})))},e.onFCP=y,e.onINP=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;const r=g();T((()=>{"interactionCount"in performance||S||(S=u("event",M,{durationThreshold:0}));let s,a=o("INP");const c=l(t,A),d=e=>{F((()=>{for(const t of e)c.h(t);const t=c.T();t&&t.L!==a.value&&(a.value=t.L,a.entries=t.entries,s())}))},h=u("event",d,{durationThreshold:t.durationThreshold??40});s=i(e,a,k,t.reportAllChanges),h&&(h.observe({type:"first-input",buffered:!0}),r.onHidden((()=>{d(h.takeRecords()),s(!0)})),n((()=>{c.v(),a=o("INP"),s=i(e,a,k,t.reportAllChanges)})))}))},e.onLCP=(e,t={})=>{T((()=>{const s=g();let c,d=o("LCP");const p=l(t,B),m=e=>{t.reportAllChanges||(e=e.slice(-1));for(const t of e)p.h(t),t.startTime<s.firstHiddenTime&&(d.value=Math.max(t.startTime-a(),0),d.entries=[t],c())},f=u("largest-contentful-paint",m);if(f){c=i(e,d,V,t.reportAllChanges);const s=h((()=>{m(f.takeRecords()),f.disconnect(),c(!0)})),a=e=>{e.isTrusted&&(F(s),removeEventListener(e.type,a,{capture:!0}))};for(const e of["keydown","click","visibilitychange"])addEventListener(e,a,{capture:!0});n((n=>{d=o("LCP"),c=i(e,d,V,t.reportAllChanges),r((()=>{d.value=performance.now()-n.timeStamp,c(!0)}))}))}}))},e.onTTFB=(e,t={})=>{let r=o("TTFB"),c=i(e,r,N,t.reportAllChanges);x((()=>{const l=s();l&&(r.value=Math.max(l.responseStart-a(),0),r.entries=[l],c(!0),n((()=>{r=o("TTFB",0),c=i(e,r,N,t.reportAllChanges),c(!0)})))}))},e}({});!function(){"use strict";var e=window.wpcVitals;if(e&&e.u&&e.t&&window.webVitals&&navigator.sendBeacon&&!0!==navigator.webdriver){var t=Number(e.s)||1;if(!(t>1&&Math.random()>=1/t)){var HU=!1;["pointerdown","keydown","touchstart","wheel","scroll","mousemove"].forEach(function(ev){addEventListener(ev,function(){HU=!0},{once:!0,passive:!0,capture:!0})});var n={},i=!1,r=function(e){return function(t){n[e]=t.value}};try{webVitals.onLCP(r("lcp")),webVitals.onCLS(r("cls")),webVitals.onINP(r("inp")),webVitals.onTTFB(r("ttfb")),webVitals.onFCP(r("fcp"))}catch(e){}addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&a()}),!0),addEventListener("pagehide",a,!0),addEventListener("pageshow",(function(e){e.persisted&&(i=!1,n={})}),!0)}}function s(){try{var t=function(){try{return performance.getEntriesByType("navigation")[0]||null}catch(e){return null}}();if(t&&t.serverTiming&&t.serverTiming.length){for(var n=0,i=0;i<t.serverTiming.length;i++){var r=t.serverTiming[i];if("wpc-cache"===r.name)return"hit"===r.description?1:0;"wpc-mint"===r.name&&(n=Number(r.description)||0)}if(n>0)return Date.now()/1e3-n>300?1:0}var s=Number(e.m)||0;if(s>0&&Date.now()/1e3-s>300)return 1}catch(e){}return 0}function a(){if(HU&&!i){i=!0;try{var t="v=1&t="+encodeURIComponent(e.t)+(e.b?"&b=1":"")+"&d="+(Math.min(window.innerWidth||1024,window.screen&&screen.width||1024)<768?"m":"d")+"&e="+(r=navigator.userAgent,(/Firefox\//.test(r)?"f":/Chrome\/|Chromium\/|Edg\//.test(r)?"c":/Safari\//.test(r)&&/Version\//.test(r)?"s":"o")+"&h=")+s();null!=n.lcp&&(t+="&lcp="+Math.round(n.lcp)),null!=n.cls&&(t+="&cls="+Math.round(1e3*n.cls)),null!=n.inp&&(t+="&inp="+Math.round(n.inp)),null!=n.ttfb&&(t+="&ttfb="+Math.round(n.ttfb)),null!=n.fcp&&(t+="&fcp="+Math.round(n.fcp)),wpcVSend(e,t,"text/plain")}catch(e){}var r}}}();(function(){try{var e=window.wpcVitals;if(!e||!e.u||!e.t)return;if(navigator.webdriver)return;var t=Number(e.s)||1;if(Math.random()>=1/t)return;var n=window.matchMedia&&matchMedia("(max-width: 767.98px)").matches?"m":"d",i=Number(e.m)||0,r=function(){try{var t=performance.getEntriesByType("navigation")[0];if(t&&t.serverTiming&&t.serverTiming.length){for(var n=0,j=0;j<t.serverTiming.length;j++){var s=t.serverTiming[j];if("wpc-cache"===s.name)return"hit"===s.description?"1":"0";"wpc-mint"===s.name&&(n=Number(s.description)||0)}if(n>0)return Date.now()/1e3-n>300?"1":"0"}}catch(c){}return i&&Math.floor(Date.now()/1e3)-i>300?"1":"0"}(),o="t="+encodeURIComponent(e.t)+(e.b?"&b=1":"")+"&k=p&d="+n+"&h="+r,a=function(){try{wpcVSend(e,o,"application/x-www-form-urlencoded")}catch(c){}};var HU2=!1;["pointerdown","keydown","touchstart","wheel","scroll","mousemove"].forEach(function(ev){addEventListener(ev,function(){HU2=!0},{once:!0,passive:!0,capture:!0})});var s=!1,g=function(){HU2&&(s||(s=!0,a()))},L=function(){setTimeout(g,8e3)};addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&g()},!0),addEventListener("pagehide",g,!0),"complete"===document.readyState?L():addEventListener("load",L,{once:!0})}catch(c){}})(); (function(){try{if(!window.PerformanceObserver||!localStorage)return;if(window.wpcVitals&&window.wpcVitals.b)return;var e=0,t=function(){try{e>0&&localStorage.setItem("wpcVitalsYou",JSON.stringify({lcp:Math.round(e),t:Math.floor(Date.now()/1e3)}))}catch(n){}};new PerformanceObserver((function(t){var n=t.getEntries();n.length&&(e=n[n.length-1].startTime)})).observe({type:"largest-contentful-paint",buffered:!0}),addEventListener("load",(function(){setTimeout(t,2e3)}),{once:!0}),addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&t()}),!0)}catch(n){}})();