(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);
}
})();
Table of contents
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
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
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
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”
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:
wpDiscuz
Insert
(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:"<",
nextText:">",
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){}})();
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
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.