Samsung Galaxy S3 (I9300) one click ROOT with ExynosAbuse Android APK

ExynosAbuse is an android application that uses an exploit to gain root privileges and install SuperSU (v0.99) on your Samsung Galaxy S3 – Exynos4 chip based device.

It doesn’t require anything else, and it will grant the user full root privileges without asking and without using any special permissions.

Even though, this is not something you should take lightly (as the hack could be used by third-party apps with malicious purposes), it is the fastest, simplest way to date, to get root access on a Samsung Exynos4 type device running factory stock roms. (Finally a simple method of using Titanium Backup without flashing custom images, bootloaders, unlocking device, etc.)

samsung_galaxy_s3_i9300_root_access
ExynosAbuse App ScreenShot

The current version of the app is 1.20 and starting with version1.10, it has the options to disable the exploit (disclaimer: this may break your camera), re-enable the exploit (if you need the camera) and to disable the exploit at boot (before any Android app runs). These options do require root (SuperSU or Superuser) to be installed as well. While this will help protect you, these are workarounds, not actual fixes.

All you need to do is download the app from the links provided below (or the original forum threads), install it (make sure you have enabled “installing from unknown sources”), and click the “Root device” button.

Samsung has been informed of this vulnerability, and it is likely that a fix will be available in the near future, but until then, if you were looking for a 1 click ROOT your Galaxy S3 procedure, this is it.

The method has been tested and works on the following devices (check the forum thread below, as it will be updated with new devices):

  • Samsung Galaxy S2 GT-I9100
  • Samsung Galaxy S3 GT-I9300
  • Samsung Galaxy S3 LTE GT-I9305
  • Samsung Galaxy Note GT-N7000
  • Samsung Galaxy Note 2 GT-N7100
  • Samsung Galaxy Note 2 LTE GT-N7105
  • AT&T Galaxy Note 2 SGH-I317
  • Verizon Galaxy Note 2 SCH-I605
  • Samsung Galaxy Tab Plus GT-P6210
  • Samsung Galaxy Note 10.1 GT-N8000, GT-N8010, GT-N8013, GT-N8020

Notes:

  • to check that your device has a Exynos4 CPU, use Antutu Benchmark android app and go to the Info Tab > Device Info and look under Basic Information.
  • take into account, that rooting the phone may also void your warranty, so use carefully.

Download: ExynosAbuse-v1.20.apk

QR Code (scan code to download app):

ExynosAbuse APK v1.20 QR Code scan
ExynosAbuse APK v1.20

Sources – XDA developers forum threads:

Youtube and Vimeo responsive – elastic videos with CSS and HTML


The idea behind responsive videos is to create a box with the proper ratio (4:3, 16:9, etc.), then make the video inside that box stretch to fit the dimensions of the box.

The main trick with elastic videos is to make use of the padding property which is the magic that styles a box with an intrinsic ratio. This is because we’re using it to set the padding to a percentage value, based on the width of the containing block.

First you will need to add the following CSS code to your wordpress theme style sheet. You can do this inside of your theme options, if your themes allows for custom CSS code to be added, or if not, then you will need to use the built-in wordpress editor to add this code at the bottom of your style.css or stylesheet.css default css file associated with your theme (go to Appearance > Editor > Styles (Stylesheet(style.css) or if supported Appearance > Edit CSS option).

CSS code for responsive / elastic Youtube embed

.video-container {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 30px; height: 0; overflow: hidden;
}

.video-container iframe,
.video-container object,
.video-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

Second, you will have to take each iframe Youtube video or Vimeo embed code that you want to make responsive and wrap it around with HTML code as illustrated below.

HTML source code for responsive / elastic Youtube embed

</pre>
<div class="video-container"><center>
 <iframe src="http://www.youtube.com/embed/KQ6zr6kCPj8?rel=0" frameborder="0" width="560" height="315"></iframe></center></div>
<pre>

At this point, the responsive YouTube iframe embedings are working, your videos should be responsive / elastic, and ready to view on Tablet devices and Mobile handsets. To verify this works use a test post and copy/paste the code above and hit Preview. Next, click on the browser “Restore Down” button in the top right corner of your screen, and begin re-sizing the browser window so that you can see in real-time how the iframe containing the video adjust to the new canvas dimensions.

Inspiration and much thanks to John from avexdesigns , and the original master  – Thierry –  from alistapart.

If you’ve enjoyed this post and found it useful, spread the love and share the knowledge.

Thank you!

Display wordpress page generation/load time statistics

You might have seen blogs around that display statistics about the time it took for the page to be generated / loaded . If you’re interested in implementing such a functionality in your own blog I’ll present you below with the way to achieve that along with the source code that does that. The majority of the work is based on Viper007Bond original post, but we’ve added a small enhancement to it.

We’ll be displaying the total time it took for the page to be generated considering php and mysql queries, and to do that we first need to define a variable inside the wp-config.php in order for that to work. Therefor open your wp-config.php file and add the following line to it:

define( 'SAVEQUERIES', true );

Now that that’s done, we’ll be moving on to the actual calculations and display of the load time information. Typically you’d add the code and have the information be displayed in your theme’s footer.php file. So take a look inside your wordpress theme directory and look for the file called footer.php and open it for edit and in-between the

<?php ?>

tags paste the code snippet below:

if (current_user_can('level_10'))
{
global $wpdb;

// Get the total page generation time
$totaltime = timer_stop( false, 22 );

// Calculate the time spent on MySQL queries by adding up the time spent on each query
$mysqltime = 0;
// if there are indeed mysql queries then
if ($wpdb-&gt;queries != null)
foreach ( $wpdb-&gt;queries as $query )
$mysqltime = $mysqltime + $query[1];

// The time spent on PHP is the remainder
$phptime = $totaltime - $mysqltime;

// Create the percentages
$mysqlper = number_format_i18n( $mysqltime / $totaltime * 100, 2 );
$phpper = number_format_i18n( $phptime / $totaltime * 100, 2 );

// Output the stats
echo 'Page generated in ' . number_format_i18n( $totaltime, 4 ) . " seconds ( {$phpper}% PHP, {$mysqlper}% MySQL )";
}

At this point you are good to go. Save your footer.php file and refresh any page of your blog.

At the bottom, in the footer section of your theme, you will see the newly added text that will read something like:

Page generated in 0.1352 seconds ( 94.00% PHP, 6.00% MySQL )

Now, consider the fact that the above code will only display this information for users that are admins, and not for regular users. Should you wish to display this information to everyone, simply delete the highlighted lines in the code snipped displayed above.

Also, take into account, that by enabling SAVEQUERIES (Save queries for analysis) in your config.php, there will be a small performance penalty involved, since this is mostly used for debugging purposes (but still…it’s COOL 🙂 ).

Oh, and by the way, if you’re wondering how to have code with highlighted syntax on your blog, then feel free to checkout the SyntaxHighlighter Evolved plugin.

Boot Camp keyboard mappings for Windows – above and beyond


Apple hardware is great…especially in the computers  department (be it a MacBook, MackBookPro, Mac Mini, or simply Mac), however when it comes to the operating system, a lot of users tend to switch to the “dark side” and install Windows based OSes through Boot Camp (which some say it’s the best of both worlds).

However with this “union” a common paint point arises, and that is making use of the Windows hot-keys / keyboard shortcuts while having to deal with an Apple keyboard which sufficiently different from a conventional keyboard. See images below:

Luckily, Boot Camp drivers offer support for keyboard shortcuts mappings in Windows, so I’ve taken the time to gather the necessary resources for you to find that specific shortcut you’re looking for.

Let me just give an example, from my own personal experience: The PrintScreen functionality in Windows and it’s keyboard mapping on a MacBookPro.

On a conventional computer/keyboard running Windows, to do a print screen, you’d simply press the PrintScr key (on some keyboards it appears as PrtScn / PRTSC / PRTSCN), and you would have performed a screen capture. To achieve the same screen capture on a MacBookPro computer, running Windows in Boot Camp you’d have to press: fn + Shift + F11 (I know…who would have guessed it?)

There is a boat load of such examples, therefore I took the liberty to list all the supporting documents for all major Windows versions that have to do with keyboard shortcuts along with the supporting documents for all Apple type keyboard shortcuts mappings for Windows.



Microsoft Windows keyboard shortcuts depending on which version you’re using:

Windows 8, Windows RT keyboard shortcuts: win 8 keyboard shortcuts

Windows 7 keyboard shortcuts: win 7 keyboard shortcuts

Windows Vista keyboard shortcuts: win Vista keyboard shortcuts

Windows Xp keyboard shortcuts: win XP keyboard shortcuts

Apple keyboard mappings depending on which apple keyboard you’re using:

Boot Camp: Apple Wireless Keyboard keyboard mapping in Windows (Last Modified: May 20, 2012):  support document for Apple Wireless Keyboard

Boot Camp: Apple Pro external keyboard mapping in Windows (Last Modified: May 20, 2012): support for Apple Pro external keyboard

Boot Camp: MacBook Pro built-in keyboard mapping in Windows (Last Modified: May 20, 2012): support for MacBook Pro built-in keyboard

Boot Camp: Apple Keyboard (Ultra–thin USB) keyboard mapping in Windows (Last Modified: Jun 18, 2012): support for Apple Keyboard (Ultra–thin USB) keyboard

Third Party Software – to go “above and beyond”

So basically, by looking above at the conventional keyboard shortcuts specific to your Window OS, and then seeing how that translates using the keyboard on your Apple product, you get a basic mapping of how and which key combination to use in order to achieve a certain functionality specific to the Windows OS, while running it in Boot Camp on a MAC type Apple computer. And for the most part, given the amount of shortcuts that there are, pretty much everything you need is already there. However if you like to go ninja and have specific actions happen when you use various hotkeys, or if you’d like to modify existing hotkeys functionality and replace it with something else, then you can use an open source utility for Windows called AutoHotKey.

With AutoHotkey you can:

  • Automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder.
  • Create hotkeys for keyboard, joystick, and mouse. Virtually any key, button, or combination can become a hotkey.
  • Expand abbreviations as you type them. For example, typing “btw” can automatically produce “by the way”.
  • Create custom data-entry forms, user interfaces, and menu bars. See GUI for details.
  • Remap keys and buttons on your keyboard, joystick, and mouse.
  • Respond to signals from hand-held remote controls via the WinLIRC client script.
  • Run existing AutoIt v2 scripts and enhance them with new capabilities.
  • Convert any script into an EXE file that can be run on computers that don’t have AutoHotkey installed.

Getting started might be easier than you think. Check out the quick-start tutorial.

If you’ve enjoyed this article give us a little love and spread the word around.

Thank you!


Install / upgrade to latest Nginx without compiling from source

Nginx server update without compiling

You can install the Nginx package from the regular Ubuntu/Debian repositories, but the versions there are generally lagging behind the current stable/development releases.

In this post, I’ll show you how to install/upgrade the latest stable or development version through Ubuntu’s package manager without having to compile Nginx from source!

1. Ubuntu guide:

1.1 Switch to root:

 sudo -i 

1.2 Update your local list of packages:

 apt-get update

1.3 Install the python-software-properties package:

 apt-get install python-software-properties

1.4 Add the Nginx Launchpad Repository:

1.4.1 Option 1 (the easy way using add-apt-repository):

 add-apt-repository ppa:nginx/development

or if you want the latest stable release use

 add-apt-repository ppa:nginx/stable

1.4.2 Option 2:

1.4.2.1 Add the repository to your sources.list using the following command:

 echo "deb http://ppa.launchpad.net/nginx/development/ubuntu $(lsb_release -cs) main" >> /etc/apt/sources.list

or if you want the latest stable release use

 echo "deb http://ppa.launchpad.net/nginx/release/ubuntu $(lsb_release -cs) main" >> /etc/apt/sources.list

Note: lsb_release -cs will grab your current ubuntu install codename

1.4.2.2 get and add the repository public key:

 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C

1.5 Update your local list of packages again:

 sudo apt-get update

1.6 Check current Nginx version:

 nginx -v
nginx version: nginx/1.2.4

1.7 Now, you can install (actually upgrade) the latest version of Nginx just like any other package (we must use forced install otherwise it will fail):

1.7.1 To upgrade:

 apt-get upgrade nginx -f

When asked what to do with the Nginx configuration file /etc/nginx/nginx.conf select
N in orer to keep your current Nginx configuration file.

1.7.2 To install (if not performing an upgrade):

 apt-get install nginx -f

1.8 When the install is done, check your current version of nginx:

 nginx -v

It should read: nginx version: nginx/1.3.8

1.9 Now just to be on the safe side and make sure everything is ok, restart the nginx service followed by a reload of the configuration to make sure statuses are OK:

 service nginx restart
service nginx reload

You are done!
Things on Debian are a little bit different since we cannot use the add-apt-repository ppa:nginx/development command since add-apt-repository is a Ubuntu specific utility that comes along in the python-software-properties packages, however since nginx isn’t all that different for Debian from Ubuntu, we can use Ubuntu development repositories to install the nginx development version bu manually modifying the sources.list file.

2.1 Switch to root:

 sudo -i

2.2 Open for edit your sources.list repositories:

 nano /etc/apt/sources.list

2.3 And add the following line at the bottom of the file:

 deb http://ppa.launchpad.net/nginx/development/ubuntu lucid main

Note: for latest stable version use

 deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main

or

 deb http://ppa.launchpad.net/nginx/development/ubuntu quantal main

Note: for latest stable version use

 deb http://ppa.launchpad.net/nginx/stable/ubuntu quantal main

Note: check out ubuntu develoment codenames here if you want to use others: https://wiki.ubuntu.com/DevelopmentCodeNames if you’d like to use a different ubuntu version repository.

2.3 Next, download and add the repository private key:

  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C

2.4 Update your local list of packages:

 apt-get update

2.5 Check current Nginx version:

 nginx -v
nginx version: nginx/1.2.8

2.6 Perform the Nginx webserver upgrade (use forced version):

2.6.1 To upgrade:

 apt-get upgrade nginx -f

When asked what to do with the Nginx configuration file /etc/nginx/nginx.conf select
N in order to keep your current Nginx configuration file.

2.6.2 To install (if not performing an upgrade):

 apt-get install nginx -f

2.7 When the install is done, check your current version of Nginx:

 nginx -v
It should read: nginx version: nginx/1.3.8

2.8 Now just to be on the safe side and make sure everything is ok, restart the Nginx service followed by a reload of the configuration to make sure statuses are OK:

 service nginx restart
service nginx reload

You are done!

3. Now to see the status of your current services type in the following:

 service --status-all

Guide tested on:

Distributor ID: Ubuntu
Description:    Ubuntu 12.10
Release:        12.10
Codename:       quantal

  AND

Distributor ID: Debian
Description:    Debian GNU/Linux 6.0.6 (squeeze)
Release:        6.0.6
Codename:       squeeze

Post inspired from Clay Richardson.