[Galaxy Tab 2 (Unified 7" + 10.1") Android Developm] Android-Andi:
Updated sensor blobs, even if they shouldn't be needed anymore (you should better provide proper logs if you face any issues with the OpenSource sensor blobs).

p3100-closed-source-sensor.zip

p3110-closed-source-sensor.zip

Just to help you understanding why you get "error7" if you flash old files from the new recovery:

Inside a file.zip is an updater-script included. This script checks if the file was made for the device (let's call this device "whitelist") to not brick a device if the file wasn't made for it.

Note: Inside recovery our device variant is defined (this can be different from the "rom device").

Ecample: on old recovery p3100 = p3100, p3110 = p3110 and so on.

The device check inside the updater-script looks like this:

P3100:

assert(getprop("ro.product.device") == "p3100" || getprop("ro.build.product") == "p3100" ||
getprop("ro.product.device") == "GT-P3100" || getprop("ro.build.product") == "GT-P3100" ||
getprop("ro.product.device") == "espressorf" || getprop("ro.build.product") == "espressorf" ||
getprop("ro.product.device") == "espressorfxx" || getprop("ro.build.product") == "espressorfxx");

P3110

assert(getprop("ro.product.device") == "p3110" || getprop("ro.build.product") == "p3110" ||
getprop("ro.product.device") == "GT-P3110" || getprop("ro.build.product") == "GT-P3110" ||
getprop("ro.product.device") == "espressowifi" || getprop("ro.build.product") == "espressowifi" ||
getprop("ro.product.device") == "espressowifixx" || getprop("ro.build.product") == "espressowifixx");

P5100

assert(getprop(getprop("ro.product.device") == "p5100" || getprop("ro.build.product") == "p5100" ||
getprop("ro.product.device") == "GT-P5100" || getprop("ro.build.product") == "GT-P5100" ||
getprop("ro.product.device") == "espresso10rf" || getprop("ro.build.product") == "espresso10rf" ||
getprop("ro.product.device") == "espresso10rfxx" || getprop("ro.build.product") == "espresso10rfxx");

P5110 & P5113

assert(getprop("ro.product.device") == "p5110" || getprop("ro.build.product") == "p5110" ||
getprop("ro.product.device") == "GT-P5110" || getprop("ro.build.product") == "GT-P5110" ||
getprop("ro.product.device") == "p5113" || getprop("ro.build.product") == "p5113" ||
getprop("ro.product.device") == "GT-P5113" || getprop("ro.build.product") == "GT-P5113" ||
getprop("ro.product.device") == "espresso10wifi" || getprop("ro.build.product") == "espresso10wifi" ||
getprop("ro.product.device") == "espresso10wifixx" || getprop("ro.build.product") == "espresso10wifixx");

All of our tab2 variants are luckylie recovery side the same and since our kernel now detects your device variant and loads the proper driver we can check now for all variants (remember: it will check your "recovery device"):

assert(getprop("ro.product.device") == "p3100" || getprop("ro.build.product") == "p3100" ||
getprop("ro.product.device") == "GT-P3100" || getprop("ro.build.product") == "GT-P3100" ||
getprop("ro.product.device") == "espressorf" || getprop("ro.build.product") == "espressorf" ||
getprop("ro.product.device") == "espressorfxx" || getprop("ro.build.product") == "espressorfxx" ||
getprop("ro.product.device") == "p3110" || getprop("ro.build.product") == "p3110" ||
getprop("ro.product.device") == "GT-P3110" || getprop("ro.build.product") == "GT-P3110" ||
getprop("ro.product.device") == "espressowifi" || getprop("ro.build.product") == "espressowifi" ||
getprop("ro.product.device") == "espressowifixx" || getprop("ro.build.product") == "espressowifixx" ||
getprop("ro.product.device") == "p5100" || getprop("ro.build.product") == "p5100" ||
getprop("ro.product.device") == "GT-P5100" || getprop("ro.build.product") == "GT-P5100" ||
getprop("ro.product.device") == "espresso10rf" || getprop("ro.build.product") == "espresso10rf" ||
getprop("ro.product.device") == "espresso10rfxx" || getprop("ro.build.product") == "espresso10rfxx" ||
getprop("ro.product.device") == "p5110" || getprop("ro.build.product") == "p5110" ||
getprop("ro.product.device") == "GT-P5110" || getprop("ro.build.product") == "GT-P5110" ||
getprop("ro.product.device") == "p5113" || getprop("ro.build.product") == "p5113" ||
getprop("ro.product.device") == "GT-P5113" || getprop("ro.build.product") == "GT-P5113" ||
getprop("ro.product.device") == "espresso10wifi" || getprop("ro.build.product") == "espresso10wifi" ||
getprop("ro.product.device") == "espresso10wifixx" || getprop("ro.build.product") == "espresso10wifixx");

Now it doesn't matter, if you use a P3100, P3110, P5100 or P5110 recovery (it also checks for samsungs device names "espresso10wifi" etc.) to flash the file.

So far so good? Sounds complicated, maybe re-read ;)

To not provide the same recovery 4 times i made a "espresso-common" device to compile twrp.

Does mean if you flash it: inside recovery our device now is a "espresso-common".

To flash old files we need to add that "espresso-common" device to the "whitelist" (remember the whitelist i mentioned before?).

assert[COLOR="Red"](getprop("ro.product.device") == "espresso-common" || getprop("ro.build.product") == "espresso-common" ||[/COLOR]
getprop("ro.product.device") == "p3100" || getprop("ro.build.product") == "p3100" ||
getprop("ro.product.device") == "GT-P3100" || getprop("ro.build.product") == "GT-P3100" ||
getprop("ro.product.device") == "espressorf" || getprop("ro.build.product") == "espressorf" ||
getprop("ro.product.device") == "espressorfxx" || getprop("ro.build.product") == "espressorfxx" ||
getprop("ro.product.device") == "p3110" || getprop("ro.build.product") == "p3110" ||
getprop("ro.product.device") == "GT-P3110" || getprop("ro.build.product") == "GT-P3110" ||
getprop("ro.product.device") == "espressowifi" || getprop("ro.build.product") == "espressowifi" ||
getprop("ro.product.device") == "espressowifixx" || getprop("ro.build.product") == "espressowifixx" ||
getprop("ro.product.device") == "p5100" || getprop("ro.build.product") == "p5100" ||
getprop("ro.product.device") == "GT-P5100" || getprop("ro.build.product") == "GT-P5100" ||
getprop("ro.product.device") == "espresso10rf" || getprop("ro.build.product") == "espresso10rf" ||
getprop("ro.product.device") == "espresso10rfxx" || getprop("ro.build.product") == "espresso10rfxx" ||
getprop("ro.product.device") == "p5110" || getprop("ro.build.product") == "p5110" ||
getprop("ro.product.device") == "GT-P5110" || getprop("ro.build.product") == "GT-P5110" ||
getprop("ro.product.device") == "p5113" || getprop("ro.build.product") == "p5113" ||
getprop("ro.product.device") == "GT-P5113" || getprop("ro.build.product") == "GT-P5113" ||
getprop("ro.product.device") == "espresso10wifi" || getprop("ro.build.product") == "espresso10wifi" ||
getprop("ro.product.device") == "espresso10wifixx" || getprop("ro.build.product") == "espresso10wifixx");