[Devs] Dev group? - Nexus Player General

okay so ive done some work on the nexus player already
was wondering if there are any other devs out there with a nexus player, i use hangouts daily for phone development ect..
so if anyone here wants to get together and make a Nexus player dev chat let me know
so far just root access
recovery is next

bunchies said:
okay so ive done some work on the nexus player already
was wondering if there are any other devs out there with a nexus player, i use hangouts daily for phone development ect..
so if anyone here wants to get together and make a Nexus player dev chat let me know
so far just root access
recovery is next
Click to expand...
Click to collapse
I don't know how much insight I could give, still learning my way around making student level apps. I have a distinct design attitude, which has driven me to keep me going into my 2nd year of my CS degree. But I would love to chat to other devs outside of school to be honest

bunchies said:
okay so ive done some work on the nexus player already
was wondering if there are any other devs out there with a nexus player, i use hangouts daily for phone development ect..
so if anyone here wants to get together and make a Nexus player dev chat let me know
so far just root access
recovery is next
Click to expand...
Click to collapse
Get in touch with ProfessorAnomaly, he's (she's?) working on recovery I think. http://forum.xda-developers.com/nexus-player/general/dev-looking-nexus-player-owner-adb-t2941852

cool, @ProfessorAnomaly
i got MTP and Root access
going to work on recovery soon, if you wanna get in chat let me know
Trying to contact @Chainfire about SU stuff atm

While I don't have the device yet (Christmas funds may change that) I wouldn't mind throwing my hat into the development ring, development is always better with team work.

Protip: fastboot.img is actually a bootable kernel, like recovery.img and boot.img
The main difference between it and recovery.img is that it listens for fastboot commands instead of adb commands.
Edit2: the fastboot program on fugu itself is buggy: it will happily allow you to fastboot FLASH abritary files even when oem locked.
All oem lock does is block the ability to fastboot BOOT files.
It seems to block fastboot format also:
Code:
N:\Android\android-sdk-windows\platform-tools>fastboot format cache
< waiting for device >
Creating filesystem with parameters:
Size: 268435456
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 65536
Block groups: 2
Reserved block group size: 15
Created filesystem with 11/16384 inodes and 2089/65536 blocks
target reported max download size of 536870912 bytes
erasing 'cache'...
FAILED (remote: erase is locked!
)
finished. total time: 0.615s
It goes through the steps of creating a new filesystem, but it seems to do so in the process of:
create a blank container and format it with ext4
overwrite /cache with it (similar to fastboot flash cache temp.img

Related

[Question]OrDroid 6.0.0 install issue - Solved

Solved. EXT4 recovey is a must Shame on me.
Hi, does anyone have an idea what could be my problem?
Tried to install OrDroid 6.0.0
On aroma only the wipe was displayed (fortunately the wipe was not performed). Then I was told that the install is complete...
Afterwards I did verify again the md5 hash, it's correct does match.
Currently CoinDroid with Sense 4 V1.5.2 is installed from the same developer shnizlon...
Saved the log :
AROMA INSTALLER version 2.00
(c) 2012 by amarullz xda-developers
ROM Name :
OrDroid
ROM Version : 6.0.0
ROM Author : Shnizlon & Baadnewz
Device : HTC Sensation
Start at :
Wed May 16 10:32:41 2012
Executing Full Wipe
-> Erasing & formatting /cache as EXT4
about to run program [/sbin/erase_image] with 2 args
Creating filesystem with parameters:
Size: 125787136
Block size: 4096
Blocks per group: 32768
Inodes per group: 7677
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 30709
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/7677 inodes and 1518/30709 blocks
error: file_write: write: I/O error
Installer Error (Status 1)
End at : Wed May 16 10:32:41 2012
SzosszeNET said:
Hi, does anyone have an idea what could be my problem?
Tried to install OrDroid 6.0.0
On aroma only the wipe was displayed (fortunately the wipe was not performed). Then I was told that the install is complete...
Afterwards I did verify again the md5 hash, it's correct does match.
Currently CoinDroid with Sense 4 V1.5.2 is installed from the same developer shnizlon...
Saved the log :
AROMA INSTALLER version 2.00
(c) 2012 by amarullz xda-developers
ROM Name :
OrDroid
ROM Version : 6.0.0
ROM Author : Shnizlon & Baadnewz
Device : HTC Sensation
Start at :
Wed May 16 10:32:41 2012
Executing Full Wipe
-> Erasing & formatting /cache as EXT4
about to run program [/sbin/erase_image] with 2 args
Creating filesystem with parameters:
Size: 125787136
Block size: 4096
Blocks per group: 32768
Inodes per group: 7677
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 30709
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/7677 inodes and 1518/30709 blocks
error: file_write: write: I/O error
Installer Error (Status 1)
End at : Wed May 16 10:32:41 2012
Click to expand...
Click to collapse
Are you using 4ext?
Sent from my Sensation using Tapatalk 2
Man use 4ext... That will do the trick
Sent from my Sensation using Tapatalk 2
matt95 said:
Are you using 4ext?
Click to expand...
Click to collapse
Sure, almost since available.
I have the latest 5.8.0.9 touch clockworkmod also
matt95 said:
Man use 4ext... That will do the trick
Click to expand...
Click to collapse
This is my current ROM : Coindroid v1.5.2
As far as I know it's also EXT4.
Same developer.
I mean flash the rom with 4ext recovery not with clockwork
Sent from my Sensation using Tapatalk 2
matt95 said:
I mean flash the rom with 4ext recovery not with clockwork
Click to expand...
Click to collapse
Sure, I'll give a try.
matt95 said:
Man use 4ext... That will do the trick
Click to expand...
Click to collapse
Rocks, that really did the trick.
It's now installed.
Btw is that normal that after install on "Senstaion" boot screen the only way to get through is to go into "safe mode" for the first boot?
Left previously the phone for 1 hour and only "htc sensation" bootscreen was displayed (when I was on CoinDroid). Then I pushed my phone into safemode and since boots normally.
SzosszeNET said:
Rocks, that really did the trick.
It's now installed.
Btw is that normal that after install on "Senstaion" boot screen the only way to get through is to go into "safe mode" for the first boot?
Left previously the phone for 1 hour and only "htc sensation" bootscreen was displayed (when I was on CoinDroid). Then I pushed my phone into safemode and since boots normally.
Click to expand...
Click to collapse
Well, I think that it's not normal... Have you got the latest 3.32 firmware installed? You need The ics hboot to boot these roms
Sent from my Sensation using Tapatalk 2
matt95 said:
latest 3.32 firmware installed?
Click to expand...
Click to collapse
Regarding this I have no idea...nor where to check it. Could you please advise?
HBOOT is 1.27.0000
Radio : 11.22.3504.07_M
OpenADSP-v02.6.0.2226.00.0131
That's all what I see at the bootloader.
Found it, for me that's OrDroid 6.0.0...
What radio/firmware works best with this ROM?
I currently have the tmo 11.69A.3504.00u_11.23.3504.07_m2.
3.32.531.14CL356011
wogeboy said:
What radio/firmware works best with this ROM?
I currently have the tmo 11.69A.3504.00u_11.23.3504.07_m2.
3.32.531.14CL356011
Click to expand...
Click to collapse
The firmware must be the 3.32 which is hboot 1.27.1100 and the radio depens on different areas... You choose the best in less words
Sent from my Sensation using Tapatalk 2

[DEV][TWRP/CWM/...] Backing up the boot (kernel/LNX) partition !

Hello folks,
it's me again (RaymanFX aka Chris Hesse) and I want to introduce you to a little, but important project.
​ My goal is to finally be able to backup the 'boot' partition of our device in CWM and TWRP or others !
​
How can we get to that ?
Well, I already have an exact plan on how to do it.
1. Step : examining the boot partition (LNX) size and offsets
2. Step : invoke a kernel hack to parse the partition layers to the system at runtime (WARNING : This will only work on a hack-enabled kernel) - I will provide one.
3. Step : re-enable 'boot' partition backup (in TWRP, e.g.) I will recompile TWRP with newest code when the time is right
Ok, so what do we have ?
1. To examine these partition layout sizes and offsets, we have to strip of the hex value of !ANDROID or ANDROID! of /dev/block/mmcblk0 using the dd command.
I already did this.
Here's how to do it :
Code:
iMac21:~ RaymanFX$ adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
~ # dd if=/dev/block/mmcblk0 of=/sdcard/20m.bin bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (20.0MB) copied, 1.271406 seconds, 15.7MB/s
~ # exit
iMac21:~ RaymanFX$ adb pull /sdcard/20m.bin /Users/RaymanFX/Desktop
2413 KB/s (20971520 bytes in 8.487s)
Then open a hex editor and search for the sring value 'ANDROID!' and copy that value.
Mine is :
Code:
0x37FFED
Now we have to convert this to get the sizes and offsets we need (I work together with Dees_Troy to resolve this).
-> To be fixed soon !
2. When we proceed, we need to invoke a kernel hack at compile time, so every old kernel needs to be recompiled.
-> I will provide a recompiled and hack-enabled harmony kernel soon
Code:
Here will be the required code fix; commit at my GitHub
3. And last but not least :
A new version of TWRP needs to be compiled to re-include the boot partition for the nandroid system, i will compile one with the newest updates once the previous steps are made.
As always, I need assistance to proceed faster with your help.
I can do everything on my own, but it will take time. What I need the most urgent is someone to convert the hex values to get the offset and size values.
One for me
The recompiled harmony kernel and information for kernel devs will be posted here.
Last one, open disscussion now !
NOTE : THIS IS A [DEV] THREAD, SO PLEASE DON'T CLUTTER IT WITH QUESTIONS THAT DON'T BELONG IN HERE. IF YOU WANT TO SUPPORT ME, HIT THE 'THANKS' BUTTON TO KEEP ME MOTIVATED !
Hmm, sounds intriguing. Why would we want to backup our boot partition exactly? Sorry, I just had to ask. Why wouldn't we be able to poll the partition via adb, or is this to make it possible via a GUI? Or are you talking about the boot loader? Argh, I'm confused...
hanthesolo said:
Hmm, sounds intriguing. Why would we want to backup our boot partition exactly? Sorry, I just had to ask. Why wouldn't we be able to poll the partition via adb, or is this to make it possible via a GUI? Or are you talking about the boot loader? Argh, I'm confused...
Click to expand...
Click to collapse
so we can back up kernel, each time we restore a rom from CWM it does not restore kernel so we have to reflash that.
hanthesolo said:
Hmm, sounds intriguing. Why would we want to backup our boot partition exactly? Sorry, I just had to ask. Why wouldn't we be able to poll the partition via adb, or is this to make it possible via a GUI? Or are you talking about the boot loader? Argh, I'm confused...
Click to expand...
Click to collapse
The 'boot' partition (LNX, in our case) stores the whole kernel and the ramdisk, combined as a boot image.
This means if I am successful, we can just backup the kernel in recovery along with the rom, like other android devices already do.
E.g. when you flash a new rom, but backed up the old one first, you have to flash a kernel compatible with the rom manually when going back to your backup as of now.
After my work has succeeded, you can just restore the old android, which restores the kernel automatically.
RaymanFX said:
The 'boot' partition (LNX, in our case) stores the whole kernel and the ramdisk, combined as a boot image.
This means if I am successful, we can just backup the kernel in recovery along with the rom, like other android devices already do.
E.g. when you flash a new rom, but backed up the old one first, you have to flash a kernel compatible with the rom manually when going back to your backup as of now.
After my work has succeeded, you can just restore the old android, which restores the kernel automatically.
Click to expand...
Click to collapse
Okay, I thought so, I just needed confirmation. Bad question #3: why can't we did the kernel partition, and restore it that way?
hanthesolo said:
Okay, I thought so, I just needed confirmation. Bad question #3: why can't we did the kernel partition, and restore it that way?
Click to expand...
Click to collapse
Ask this to ASUS !
Those guys gave us a crappy partition layout, meaning we only have /staging for flashing boot and recovery blobs, NO REAL PARTITIONS holding those files. -> UNITL NOW ! I examined the boot offset and size ...
Seems like the recovery ad boot partition share the same offsets and sizes .. will check this
EDIT : Progress : I have the offsets and sizes right at my hands !
See : My hex offset is 0x37ffed, I take this and convert it to decimal ()10 ... then I get 3669997, which fits our definitions perfectly (7chars).
Now, we have to divide this by the block layer size (512), we get 7167.962890625, which is ugly.
The second one has hex offset at 0x87ffe8, decimal at 8912872, decided by 512 makes 17407.953125
Very nice work, seems like more and more people are learning to dev.
RaymanFX said:
Ask this to ASUS !
Those guys gave us a crappy partition layout, meaning we only have /staging for flashing boot and recovery blobs, NO REAL PARTITIONS holding those files. -> UNITL NOW ! I examined the boot offset and size ...
Seems like the recovery ad boot partition share the same offsets and sizes .. will check this
EDIT : Progress : I have the offsets and sizes right at my hands !
See : My hex offset is 0x37ffed, I take this and convert it to decimal ()10 ... then I get 3669997, which fits our definitions perfectly (7chars).
Now, we have to divide this by the block layer size (512), we get 7167.962890625, which is ugly.
The second one has hex offset at 0x87ffe8, decimal at 8912872, decided by 512 makes 17407.953125
Click to expand...
Click to collapse
Oh, okay, ouch, this sounds like it is going to be a LOT if fun to do . I thought it would be possible because the uodater-script flashes kernels to mmcblk0p4, but I guess that was staging, not the actual kernel partition (this also explains why I got a fliesize if 500ish MB the other day when I dd'ed the partition). Good luck to you, and I will try to help the next time I am bored/have free time.
The important stuff is in the header (raw?) of mmcblk0, so it should be possible to just use dd.
K900 said:
The important stuff is in the header (raw?) of mmcblk0, so it should be possible to just use dd.
Click to expand...
Click to collapse
... so ?
Look at my first post, this is exactly what I did. Stripped off the first 20M and found the offsets. I am getting assistance from Dees_Troy and the TF300 devs to ensure everything is going the right way.
RaymanFX said:
... so ?
Look at my first post, this is exactly what I did. Stripped off the first 20M and found the offsets. I am getting assistance from Dees_Troy and the TF300 devs to ensure everything is going the right way.
Click to expand...
Click to collapse
What I mean is patching the kernel to make it a 'partition' is dangerous and can cause unexpected results, so dd and a modified recovery should be used instead.
K900 said:
What I mean is patching the kernel to make it a 'partition' is dangerous and can cause unexpected results, so dd and a modified recovery should be used instead.
Click to expand...
Click to collapse
Believe me, they can't be used. We need the kernel patch. The guys from tf300 tried anything, but using the kernel hack was the only way to make this possible.
And if (not possible in theory) the hack would cause problems, we can always flash a different one since the /staging-flash is not affected at all
RaymanFX said:
Believe me, they can't be used. We need the kernel patch. The guys from tf300 tried anything, but using the kernel hack was the only way to make this possible.
And if (not possible in theory) the hack would cause problems, we can always flash a different one since the /staging-flash is not affected at all
Click to expand...
Click to collapse
There should be other solutions that don't involve uber ugly kernel hacks. I'll see if I can get more info since I have some docs regarding the boot process on generic Tegra boards and reusing same methods (likely bypassing ASUS bootloaders altogether) should be possible, at least now that we have nvflash access for all.
Hey Rayman, any word on this getting up and going? It will kick tail if you do. No more multiple zips then which means more space for me.
According to my research with others in the #asus-transformer channel on Freenode, the correct values are 0x380000 and 0x880000
380000 to decimal becomes: 3670016
3670016 / 512 = 7168 so 7168 is your first offset
880000 to decimal becomes: 8912896
8912896 / 512 = 17408 so 17408 is your second offset
The difference between the 2 values is hex 500000, decimal 5242880.
5242880 / 512 = 10240 which is your size for both.
Of course, after you build a kernel with the correct source and offsets, you'll want to dd dump the partitions and verify with a hex editor that you're getting the right stuff. Both partitions should start with "ANDROID!". You'll also want to unpack the contents of the dd images with unpackbootimg or something and determine which one is recovery and which one is boot. Most likely the first one is recovery.
Technically some of the other people are right. You can probably use dd with the right seek and size values to flash and dump the partitions without modifying the kernel, but modifying the kernel makes for a cleaner, simpler setup. We've used the kernel approach on the TF201, TF300T, and TF700T with much success.
Hope that helps.
Dees_Troy said:
According to my research with others in the #asus-transformer channel on Freenode, the correct values are 0x380000 and 0x880000
380000 to decimal becomes: 3670016
3670016 / 512 = 7168 so 7168 is your first offset
880000 to decimal becomes: 8912896
8912896 / 512 = 17408 so 17408 is your second offset
The difference between the 2 values is hex 500000, decimal 5242880.
5242880 / 512 = 10240 which is your size for both.
Of course, after you build a kernel with the correct source and offsets, you'll want to dd dump the partitions and verify with a hex editor that you're getting the right stuff. Both partitions should start with "ANDROID!". You'll also want to unpack the contents of the dd images with unpackbootimg or something and determine which one is recovery and which one is boot. Most likely the first one is recovery.
Technically some of the other people are right. You can probably use dd with the right seek and size values to flash and dump the partitions without modifying the kernel, but modifying the kernel makes for a cleaner, simpler setup. We've used the kernel approach on the TF201, TF300T, and TF700T with much success.
Hope that helps.
Click to expand...
Click to collapse
From my research
Code:
Position 3670016 / 512 = 7168
Position 8912896 / 512 = 17408
Diff
5242880
10240
From nvflash flash.cfg
SOS Size 5242880 / 512 = 10240
LNX Size 8388608 / 512 = 16384
Also, I already have a kernel compiled. I'll test later.
Just thinking about this thing and wondering about the linux-based (or are they also based on other architectures?) blob tools as a possible workaround? Ignore this if it seems silly. I haven't thought about this sort of thing for a long time and not at all on the transformer.
-
When any of the many kernel/ROM installer scripts take off and do their thing, they use the compiled (usually for linux, but some sort of combo binary and script) blob tools , I thought from Rayman as well (but it's been awhile since I've played with the source and the tools themselves.
Is there any reason why an android version of those couldn't be built and used inside either cwm or tw* to perform both the backup and retrieval of the kernel? I realize it would have to churn out an installer type script somewhere in the backup directory and run it upon restore, but would something like this be one of the multiple possible solutions? I'm guessing there is some obvious reason I've not looked into yet, like a dependency upon some other API or utility that is in a full linux system, but not in an android OS.. (but I don't know).
I suppose the good news of this would be that numbers tied to the partition wouldn't be of much importance since blobbing works OK without them, but there might also be a down side to adding a completely different type of backup/restore paradigm just for the kernel to a nice little piece of code (cwm/tw*) that works for everything else.
hachamacha said:
Just thinking about this thing and wondering about the linux-based (or are they also based on other architectures?) blob tools as a possible workaround? Ignore this if it seems silly. I haven't thought about this sort of thing for a long time and not at all on the transformer.
-
When any of the many kernel/ROM installer scripts take off and do their thing, they use the compiled (usually for linux, but some sort of combo binary and script) blob tools , I thought from Rayman as well (but it's been awhile since I've played with the source and the tools themselves.
Is there any reason why an android version of those couldn't be built and used inside either cwm or tw* to perform both the backup and retrieval of the kernel? I realize it would have to churn out an installer type script somewhere in the backup directory and run it upon restore, but would something like this be one of the multiple possible solutions? I'm guessing there is some obvious reason I've not looked into yet, like a dependency upon some other API or utility that is in a full linux system, but not in an android OS.. (but I don't know).
I suppose the good news of this would be that numbers tied to the partition wouldn't be of much importance since blobbing works OK without them, but there might also be a down side to adding a completely different type of backup/restore paradigm just for the kernel to a nice little piece of code (cwm/tw*) that works for everything else.
Click to expand...
Click to collapse
That would be an option as well I suppose. Take the image and call blobpack and build a blob to be flashed on reboot. Although, if we could 'dd' it cleanly without causing issues with other devices, that would be an ideal solution. Until then, this kernel change will work.

CleanROM install not working

Hi have HTC One XL with S-OFF and bootloader unlocked. I have TWRP 2.5 on it. Its on the latest hboot as well. I have been using ViperXL for some time now. Today I decided to flash CleanROM just to test it out.
So i followed the instructions and flash boot.img in fastboot and then went in recovery, wipe data and factory reset and then flashed the zip file. The Installation finished in a second and told me to reboot the device. When the menu took me back to twrp for reboot, it gave me 'No OS installed' message. When I got into the install log I found the below line in it:
error: file_write: write: I/O error Installer Error (Status 1)
It seems something is not wrong and not working. Any help would be greatly appreciated.
Below is the complete log file:
AROMA INSTALLER version 2.56
(c) 2012 by amarullz xda-developers
ROM Name : CleanROM
ROM Version : 6.5
ROM Author : Scott
Device
: AT&T HTC One X
Start at : Tue Jun 18 02:42:19 2013
Thank you for installing CleanROM!
You made a wise choice!
Sit back and relax while CleanROM installs...
This will take a few minutes...
While your waiting please visit www.scottsroms.com
--------------------
Your Donations are greatly appreciated and help buy new devices and pay for website costs!
--------------------
Creating filesystem with parameters:
Size: 1744829440
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode size: 256
Journal blocks: 6656
Label:
Blocks: 425983
Block groups: 13
Reserved block group size: 103
Created filesystem with 11/106496 inodes and 13971/425983 blocks
error: file_write: write: I/O error Installer Error (Status 1)
End at : Tue Jun 18 02:42:20 2013
Use twrp 2.3.3.1, anything past that version has problems flashing and formatting.
Sent from my HTC One X using xda premium
Any specific steps I need to follow to downgrade from 2.5 to 2.3.3?
uzair_rock said:
Any specific steps I need to follow to downgrade from 2.5 to 2.3.3?
Click to expand...
Click to collapse
So, I would download twrp 2.3.3.1 and check the md5
then fastboot flash recovery recoveryfilename.img
fastboot erase cache
fastboot reboot-bootloader
Thanks!
I flashed twrp 2.3.3.1 . Now in twrp when I am wiping delvick cache, its telling me unable to mount cache. What needs to be done to clear that?
uzair_rock said:
Thanks!
I flashed twrp 2.3.3.1 . Now in twrp when I am wiping delvick cache, its telling me unable to mount cache. What needs to be done to clear that?
Click to expand...
Click to collapse
Ignore it.
Thanks!!! It worked!

[RECOVERY][DREAMTAB] TWRP 3.0.0.0 for Nabi Dreamtab HD8

TWRP recovery 3.0.0 for the Nabi Dreamtab HD8. (t8400n)
​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
​
At this point this recovery is still considered in testing. The normal disclaimers apply.
IMPORTANT!!!! If you have an IN08A version do not use this recovery, this will only work on NV08A
For IN08A see a tethered recovery and rooting method here: http://forum.xda-developers.com/showpost.php?p=57825022&postcount=25
This is for Nabi Dreamtab
Nabi2 is HERE
Nabi JR 4GB is HERE
Nabi JR 16GB is HERE
NabiXD is HERE
Updates
READ THIS FIRST!!
03/22/2016 Latest TWRP 3.0.0 files http://forum.xda-developers.com/showpost.php?p=65989774&postcount=66
10/5/2015 older TWRP 2.8.7 files http://forum.xda-developers.com/showpost.php?p=63151136&postcount=46
Initial TWRP 2.7.1 Direct Link
Stock recovery for Nabi version 1.3.7
http://forum.xda-developers.com/showpost.php?p=59290754&postcount=41
For more information on TWRP and change log see the TeamWin Website
Information
You do not need root to install this, in fact you can use the recovery to root your Dreamtab HD8. Upon exiting TWRP it will ask to root the device if it is not already, I ran in to an issue where I had to download SuperSU from play store afterwards to get it properly rooted.
Installation
Video tutorial https://www.youtube.com/watch?v=V_JML4wN3QM&feature=youtu.be
Having trouble? http://forum.xda-developers.com/nabi-2/general/nabi-information-t3229119
Start with Nabi booted to android, ADB debugging enabled, windows adb and fastboot drivers installed. (PDAnet drivers are popular)
-Method 1 (Recommended install , guided installer)
-Download Dreamtab Auto Installer from above
-Extract DTTWRPinstaller.zip
-Run install.bat
Code:
Select option 1 for installing recovery and immediate backup of tablet
Select option 2 to just install TWRP
Select option 3 to install the original stock recovery
-Method 2 (manual temporary install, will keep your current recovery)
-Download "TWRP 3.0.0.0 for Nabi Dreamtab"
-Extract recovery.img from zip to your adb directory
-From a command prompt in your adb directory
Code:
adb reboot-bootloader
fastboot boot recovery.img
-Method 3 (manual permanent install, will overwrite your current recovery)
-Download "TWRP 3.0.0.0 for Nabi Dreamtab"
-Extract recovery.img from .zip to your adb directory
-From a command prompt in your adb directory
Code:
adb reboot-bootloader
fastboot flash recovery recovery.img
Other
Device source https://github.com/aicjofs/android_device_fuhu_t8400
TWRP source https://github.com/omnirom/android_bootable_recovery
Credits
Geohot for towelroot (version 1 specifically)
TeamWin and OmniROM teams for TWRP.
Dees_Troy for build tutorials.
are you playing with new goodies again ? lol
Cant wait for you to " port " this to another nabi :victory:
aicjofs said:
.
Click to expand...
Click to collapse
You are awesome! :highfive:
Now for the $10^6 question....did Fuhu pull a Nabi2 and screw up the filesystem on the Dreamtab?
Thanks
Sno
Snoshrk said:
You are awesome! :highfive:
Now for the $10^6 question....did Fuhu pull a Nabi2 and screw up the filesystem on the Dreamtab?
Thanks
Sno
Click to expand...
Click to collapse
Better. /cache is ridiculously large, and while system is big, their ROM takes most of it and this time they left a little wiggle room. Dumbest by far is recovery being only 8MB. I may not be right on my markup below because I don't have my notes handy, but it's close
C:\Users\JON\Downloads\V50020_aboot_twrp_v2>adb shell
adb server is out of date. killing...
* daemon started successfully *
[email protected]:/ $ su
su
[email protected]:/ # df
df
Filesystem Size Used Free Blksize
/dev 959256.0K 128.0K 959128.0K 4096
/sys/fs/cgroup 959256.0K 12.0K 959244.0K 4096
/mnt/asec 959256.0K 0.0K 959256.0K 4096
/mnt/asec/com.mojang.minecraftpe-1 29688.0K 28108.0K 1580.0K 4096
/mnt/obb 959256.0K 0.0K 959256.0K 4096
/system 1548144.0K 1427960.0K 120184.0K 4096 Some free space for grow or user add system apps
/cache 1548144.0K 703612.0K 844532.0K 4096 I don't see using all this space in normal system operation
/data 10234424.0K 5400448.0K 4833976.0K 4096 I think I have a whole bunch of stuff on here so ignore this
/forever 64496.0K 4172.0K 60324.0K 4096
/forever/addon 1548144.0K 1010428.0K 537716.0K 4096
/mnt/shell/emulated 10234424.0K 5400448.0K 4833976.0K 4096
/storage/emulated 959256.0K 0.0K 959256.0K 4096
/mnt/media_rw/sdcard1 31154688.0K 27072640.0K 4082048.0K 32768
/storage/sdcard1 31154688.0K 27072640.0K 4082048.0K 32768
/storage/emulated/0 10234424.0K 5400448.0K 4833976.0K 4096
/storage/emulated/0/Android/obb 10234424.0K 5400448.0K 4833976.0K 4096
/storage/emulated/legacy 10234424.0K 5400448.0K 4833976.0K 4096
/storage/emulated/legacy/Android/obb 10234424.0K 5400448.0K 4833976.0K 4096
[email protected]:/ # cat /proc/partitions
cat /proc/partitions
major minor #blocks name
7 0 30177 loop0
179 0 15267840 mmcblk0
179 1 8192 mmcblk0p1
179 2 4096 mmcblk0p2
179 3 8192 mmcblk0p3
179 4 1572864 mmcblk0p4 system
179 5 1572864 mmcblk0p5 cache
179 6 2048 mmcblk0p6
179 7 65536 mmcblk0p7
179 8 1572864 mmcblk0p8 addon
179 9 2048 mmcblk0p9
179 10 32768 mmcblk0p10
179 11 2048 mmcblk0p11
179 12 10397696 mmcblk0p12 data
179 32 4096 mmcblk0boot1
179 16 4096 mmcblk0boot0
179 48 31166976 mmcblk1
179 49 31162880 mmcblk1p1
254 0 30177 dm-0
[email protected]00n:/ # ^C
These thing at $200 at Walmart a week ago, very good deal, considering they had the Nabi2 at $179 right next to it.
Hi, just got this tablet today and I'm puzzled as why the Nabi website says this is supposed to have a Tegra 4 CPU but in CPU-Z it says is an Intel Atom Z3745. Many thanks for any info.
Sent from my DMTAB-IN08A using Tapatalk
Omegadrive said:
Hi, just got this tablet today and I'm puzzled as why the Nabi website says this is supposed to have a Tegra 4 CPU but in CPU-Z it says is an Intel Atom Z3745. Many thanks for any info.
Sent from my DMTAB-IN08A using Tapatalk
Click to expand...
Click to collapse
Interesting. Initially this was to be an Intel CPU tablet(see CES articles from Feb), then it came out as Tegra4. Look at you model number. The "IN08A" versus the "NV08A". This is a first for Fuhu. So this recovery certainly won't work. Do you have fastboot?
aicjofs said:
Interesting. Initially this was to be an Intel CPU tablet(see CES articles from Feb), then it came out as Tegra4. Look at you model number. The "IN08A" versus the "NV08A". This is a first for Fuhu. So this recovery certainly won't work. Do you have fastboot?
Click to expand...
Click to collapse
Haven't attempted to root or install recovery, but it could be that they have both tablets at Costco, first one she tried to scan didn't matched the sku and she went and got another one, I will take it back today and make sure the model number starts with NV, I was actually expecting a Tegra CPU which is way better than a crappy Atom.
Sent from my DMTAB-IN08A using Tapatalk
Omegadrive said:
Haven't attempted to root or install recovery, but it could be that they have both tablets at Costco, first one she tried to scan didn't matched the sku and she went and got another one, I will take it back today and make sure the model number starts with NV, I was actually expecting a Tegra CPU which is way better than a crappy Atom.
Sent from my DMTAB-IN08A using Tapatalk
Click to expand...
Click to collapse
This recovery definitely won't work on the Intel one. I think I typo'd above, it NV08B not A
aicjofs said:
This recovery definitely won't work on the Intel one. I think I typo'd above, it NV08B not A
Click to expand...
Click to collapse
Just came back from Costco, ended up returning it, there is no info on the boxes that says the model number anywhere, so didn't risk it. Thanks anyway.
Sent from my XT910 using Tapatalk
So is there any viable method to root the Intel version? At this point I'd be happy with just knocking out the bloat so my kid can actually install apps.
pm1066 said:
So is there any viable method to root the Intel version? At this point I'd be happy with just knocking out the bloat so my kid can actually install apps.
Click to expand...
Click to collapse
You can try towelroot. Only version 1 worked on the nvidia. Likely depends on software version and if futex exploit was patched in kernel.
I'll check it out. Don't want to brick my kid's toy!
Warning !! Locked Bootloader after OTA 1.3.7 Update
Seems they might have locked the bootloader in the OTA 1.3.7
adb reboot-bootloader
fastboot boot recovery.img
downloading 'boot.img'...
FAILED (remote: Bootloader is locked.)
finished. total time: 0.003s
The OTA 1.2.9 didn't do this, and I as able to still fire over the TWRP custom recovery just fine
fastboot oem unlock
...
(bootloader) Showing Options on Display.
(bootloader) Use device keys for selection.
(bootloader) erasing userdata...
(bootloader) erasing userdata done
(bootloader) erasing cache...
(bootloader) erasing cache done
(bootloader) unlocking...
(bootloader) Bootloader is unlocked now.
OKAY [ 71.105s]
finished. total time: 71.105s
Bootloader is now unlocked again but at the expense of basically a factory reset (losing all outside data and apps)
And the question I'm left with now is how do I apply any future OTA without having to dump the data again *Grin* ?
Thanks again aicjofs
Since this is the only thread I've found that even mentions the DreamTab, I'm going to hope someone can help me. Basically my DreamTab was bricked with the latest OTA. Upon restarting after the update, I get the DreamTab logo "powered by android" and then after, it goes to the generic "android" boot animation, rather than the DreamTab animation. (The word android in the old font in a greenish color that has a "shine" moving across it) I've let it sit on this screen for a while, but it never moves beyond it. I've done a factory reset through the recovery kernel, but that doesn't seem to have helped anything. I am RMAing the device, but if I can avoid the 2+ of transit and such, I would like to. Any chance I can flash the OTA through the recovery kernel and possibly fix this? If so, any chance someone actually has the OTA zip? Thanks in advance.
chikimonke said:
Since this is the only thread I've found that even mentions the DreamTab, I'm going to hope someone can help me. Basically my DreamTab was bricked with the latest OTA. Upon restarting after the update, I get the DreamTab logo "powered by android" and then after, it goes to the generic "android" boot animation, rather than the DreamTab animation. (The word android in the old font in a greenish color that has a "shine" moving across it) I've let it sit on this screen for a while, but it never moves beyond it. I've done a factory reset through the recovery kernel, but that doesn't seem to have helped anything. I am RMAing the device, but if I can avoid the 2+ of transit and such, I would like to. Any chance I can flash the OTA through the recovery kernel and possibly fix this? If so, any chance someone actually has the OTA zip? Thanks in advance.
Click to expand...
Click to collapse
Do you know if it's the Intel or Nvidia version?
I am sure I have stock backup of nvidia in my archives somewhere, but haven't uploaded it.
aicjofs said:
Do you know if it's the Intel or Nvidia version?
I am sure I have stock backup of nvidia in my archives somewhere, but haven't uploaded it.
Click to expand...
Click to collapse
How would one tell?
chikimonke said:
How would one tell?
Click to expand...
Click to collapse
I'm at work, but I think on the back in says something like NV8B, or IN8A. nv for nvidia, in for intel.
aicjofs said:
I'm at work, but I think on the back in says something like NV8B, or IN8A. nv for nvidia, in for intel.
Click to expand...
Click to collapse
nvidia it is. Is this something that can flashed through the stock recovery? Because if this doesn't work, I still want to be able to use the RMA that I have setup.
chikimonke said:
nvidia it is. Is this something that can flashed through the stock recovery? Because if this doesn't work, I still want to be able to use the RMA that I have setup.
Click to expand...
Click to collapse
No you would have to temp load TWRP to RAM(no flashing to nand), then restore. I could upload the OTA that's flashable with stock recovery, it might work if it happens to update the right files but if you have something corrupt it will fail the SHA1 checks. You were going from 1.2.9 to 1.3.7?
Let me know how you want to proceed.
aicjofs said:
No you would have to temp load TWRP to RAM(no flashing to nand), then restore. I could upload the OTA that's flashable with stock recovery, it might work if it happens to update the right files but if you have something corrupt it will fail the SHA1 checks. You were going from 1.2.9 to 1.3.7?
Let me know how you want to proceed.
Click to expand...
Click to collapse
Alright, if I understand correctly, I could try the OTA first, then if that doesn't work try with TWRP. The temporary TWRP method, does it require unlocking the bootloader? I'm not familiar with loading a recovery only in RAM. And yes, going from 1.2.9 to 1.3.7. Thanks for your help.

xT2213-1 (Austin) Moto G 5G 2022, S1SAS32.47-59-3

Any custom roms like lineage for this device? This is not kiev.
Well, the phone barely launched. It does not have even a year. Since the phone is in order to get another 1 -2 updates, wait for those. Moto can develop faster than any individual dev. If you want lineage or other custom rom, wait a couple more months
Fytdyh said:
Well, the phone barely launched. It does not have even a year. Since the phone is in order to get another 1 -2 updates, wait for those. Moto can develop faster than any individual dev. If you want lineage or other custom rom, wait a couple more months
Click to expand...
Click to collapse
I tried using a stock firmware and patched magisk but when I booted up the phone I got this
gr3uh said:
I tried using a stock firmware and patched magisk but when I booted up the phone I got this
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You cannot bypass that. That carrier lock is in place to ensure you won't sell the device as something else. You would need to talk to your carrier and pay to get it unlocked.
Fytdyh said:
You cannot bypass that. That carrier lock is in place to ensure you won't sell the device as something else. You would need to talk to your carrier and pay to get it unlocked. .
Click to expand...
Click to collapse
I think I used the wrong firmware possibly
Fytdyh said:
You cannot bypass that. That carrier lock is in place to ensure you won't sell the device as something else. You would need to talk to your carrier and pay to get it unlocked.
Click to expand...
Click to collapse
Makes no sense since I was perfectly able to unlock the bootloader using Motorola's official guide.
I recommend posting your questions here :
https://forum.xda-developers.com/t/...noob-friendly.2257421/page-2453#post-87357675
Do say what you did, what you flashed. Everyone can help you faster if you are concise and say what did you flash or did to that device. Whenever you try something, write it down.
mine did that too and i just kept trying different sim cards untill i found one that worked and it unlocked it
Hi all, I have a couple questions about this:
My ultimate goal is to get a custom firmware on this (Lineage). I have seen a few threads floating around here, recommending an alternate method for rooting the device, and offering a link to the stock firmware.
However, even if this is successful, I will end up with a rooted, stock-Android phone at the end of it, and since there's still no Lineage release for this phone (or any other alternate firmare, from what I can tell), this effort is not going to get me any closer to a custom ROM. Am I understanding this correctly?
If I'm understanding point 1 correctly, then I need to decide whether to keep this phone, or return it. If a custom OS never becomes available, I don't want the phone. Even in github, there's no indication I could see that Austin is even under development.
However, if this phone is likely to end up with a LineageOS version, I'll just wait a few months. For those of you who spend more time on XDA than I do, how likely is it that this will get a release candidate?
Thanks for your help!
3×5 said:
Hi all, I have a couple questions about this:
My ultimate goal is to get a custom firmware on this (Lineage). I have seen a few threads floating around here, recommending an alternate method for rooting the device, and offering a link to the stock firmware.
However, even if this is successful, I will end up with a rooted, stock-Android phone at the end of it, and since there's still no Lineage release for this phone (or any other alternate firmare, from what I can tell), this effort is not going to get me any closer to a custom ROM. Am I understanding this correctly?
If I'm understanding point 1 correctly, then I need to decide whether to keep this phone, or return it. If a custom OS never becomes available, I don't want the phone. Even in github, there's no indication I could see that Austin is even under development.
However, if this phone is likely to end up with a LineageOS version, I'll just wait a few months. For those of you who spend more time on XDA than I do, how likely is it that this will get a release candidate?
Thanks for your help!
Click to expand...
Click to collapse
I've been told there will never be any progress on custom roms and firmware for this device since it is mediatek and mediatek is locked down their binaries making it hard for people to make custom rom. That being said you can try porting your own twrp or flashing a GSI.
KParsons0697 said:
mine did that too and i just kept trying different sim cards untill i found one that worked and it unlocked it
Click to expand...
Click to collapse
My phone I bought it from a carrier and it was locked until payed off, paid it and waited a few days and it worked. Rooting this device was easy, just wish rom development would come sometime. I hear android 13 should be coming to this device around the beginning of Q2 of 2023
@gr3uh, thanks for the reply. I could try a GSI, but really my goal is to have an open-as-possible, de-Googled phone. I don't even really care about MicroG, or any of this. Even with no services at all, I can use Google Maps in a browser.
I assume if I install the stock firmware from lolinet, it'll have all the Google Play services. Will the phone also be rooter at that point? Or do I have to also root the phone, and then manually remove all the play services?
The big picture question is this: what's the simplest route to me De-Googling this phone?
Bonus question: why is the stock firmware hosted on a site called 'lolinet'? Maybe I don't want to know...
Alright, here's an update on my progress:
I downloaded a Lineage GSI image from Andy Yan. His site said to install an app called 'Treble Info' to get device information. I did this and got the version that matched this device: lineage-20.0-20230115-UNOFFICIAL-arm64_bvS-vndklite.img.xz
(b means "AB", i.e. system-as-root. VNDKLITE = Read/Write Super partition. Treble info said VNDKLITE was enabled on this device).
I restarted in fastboot mode and ran
Code:
fastboot erase system
and got:
Code:
erasing 'system_b'...
OKAY [ 0.054s]
Then I ran:
Code:
fastboot -u flash system lineage-20.0-20230115-UNOFFICIAL-arm64_bvS-vndklite.img.xz
and got:
Code:
target reported max download size of 268435456 bytes
Invalid sparse file format at header magic
error: write_sparse_skip_chunk: don't care size 432773236 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 164341876 is not a multiple of the block size 4096
sending sparse 'system_b' 1/3 (262140 KB)...
error: write_sparse_skip_chunk: don't care size 432773236 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 432773236 is not a multiple of the block size 4096
OKAY [ 9.599s]
writing 'system_b' 1/3...
FAILED (status read failed (No such device))
So then I downloaded an empty vbmeta.img file, and flashed that:
Code:
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
That appeared to work, because I thought my issue might be that dm-verity was enabled. However, I think the real issue is that I flashed this wrong, because I was looking at a tutorial that didn't apply to a system with a super partition. So my hope is that I can still flash my GSI image to the super partition, but I'm not totally sure how to do this. It might be as simple as
Code:
fastboot flash super lineage-20.0-20230115-UNOFFICIAL-arm64_bvS-vndklite.img.xz
But I don't want to make things worse. At this point, my system partition is corrupted. The first time I tried to flash system I got "no such device", and the second time I got
Code:
(bootloader) Invalid partition name system
Anyway, I can only boot into fastboot mode. I do have that stock ROM from lolinet, so I could try flashing the super partition, chunk by chunk. There are 26 sparsechunks. Maybe this would get me back to square 1, but I'd rather press forward at this point, if possible, and try to get this GSI image flashed.
I should also point out that when I boot into fastbootd on the phone, it says 'Secure boot - yes' even though I flashed that empty vbmeta image and got:
Code:
target reported max download size of 268435456 bytes
sending 'vbmeta_b' (4 KB)...
OKAY [ 0.000s]
writing 'vbmeta_b'...
OKAY [ 0.073s]
finished. total time: 0.074s
3×5 said:
Alright, here's an update on my progress:
I downloaded a Lineage GSI image from Andy Yan. His site said to install an app called 'Treble Info' to get device information. I did this and got the version that matched this device: lineage-20.0-20230115-UNOFFICIAL-arm64_bvS-vndklite.img.xz
(b means "AB", i.e. system-as-root. VNDKLITE = Read/Write Super partition. Treble info said VNDKLITE was enabled on this device).
I restarted in fastboot mode and ran
Code:
fastboot erase system
and got:
Code:
erasing 'system_b'...
OKAY [ 0.054s]
Then I ran:
Code:
fastboot -u flash system lineage-20.0-20230115-UNOFFICIAL-arm64_bvS-vndklite.img.xz
and got:
Code:
target reported max download size of 268435456 bytes
Invalid sparse file format at header magic
error: write_sparse_skip_chunk: don't care size 432773236 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 164341876 is not a multiple of the block size 4096
sending sparse 'system_b' 1/3 (262140 KB)...
error: write_sparse_skip_chunk: don't care size 432773236 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 432773236 is not a multiple of the block size 4096
OKAY [ 9.599s]
writing 'system_b' 1/3...
FAILED (status read failed (No such device))
So then I downloaded an empty vbmeta.img file, and flashed that:
Code:
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
That appeared to work, because I thought my issue might be that dm-verity was enabled. However, I think the real issue is that I flashed this wrong, because I was looking at a tutorial that didn't apply to a system with a super partition. So my hope is that I can still flash my GSI image to the super partition, but I'm not totally sure how to do this. It might be as simple as
Code:
fastboot flash super lineage-20.0-20230115-UNOFFICIAL-arm64_bvS-vndklite.img.xz
But I don't want to make things worse. At this point, my system partition is corrupted. The first time I tried to flash system I got "no such device", and the second time I got
Code:
(bootloader) Invalid partition name system
Anyway, I can only boot into fastboot mode. I do have that stock ROM from lolinet, so I could try flashing the super partition, chunk by chunk. There are 26 sparsechunks. Maybe this would get me back to square 1, but I'd rather press forward at this point, if possible, and try to get this GSI image flashed.
Click to expand...
Click to collapse
There should be a batch file in the zip you can use to flash the dynamic partition covers everything just edit it to fit your need. And run as betch
Thanks for the reply, but the link in my post is just to a .img.xz file. It doesn't have any zip and no "batch/betch" file (I assume you meant bash?)
3×5 said:
Thanks for the reply, but the link in my post is just to a .img.xz file. It doesn't have any zip and no "batch/betch" file (I assume you meant bash?)
Click to expand...
Click to collapse
.bat or batch is a file that contains a compiled list or a batch of commands that can run the commands in chronological order so you don't have any error and it makes the installation data redundant. It's really a helpful tool that automates workflow.
radosomalo said:
.bat or batch is a file that contains a compiled list or a batch of commands that can run the commands in chronological order so you don't have any error and it makes the installation data redundant. It's really a helpful tool that automates workflow.
Click to expand...
Click to collapse
Thanks for the clarification. Unfortunately, my image is just an img.xz file. There's no .bat script and no zip.
I ran fastboot getvar current-slot and it says 'current-slot: b'. Then I ran fastboot flash system_b imagefile.img.xz and I got:
Code:
target reported max download size of 268435456 bytes
Invalid sparse file format at header magic
error: write_sparse_skip_chunk: don't care size 433714276 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 165282916 is not a multiple of the block size 4096
sending sparse 'system_b' 1/3 (262140 KB)...
error: write_sparse_skip_chunk: don't care size 433714276 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 433714276 is not a multiple of the block size 4096
OKAY [ 9.401s]
writing 'system_b' 1/3...
FAILED (status read failed (No such device))
finished. total time: 14.558s
So basically the same problem as before. I tried running 'fastboot delete-logical-partition product_b' and got:
Code:
fastboot: usage: unknown command delete-logical-partition
I could try 'fastboot flash super imagefile.img.xz' but I don't know if I'm supposed to delete super first, and I don't want to make things worse. So any advice would be appreciated.
radosomalo said:
.bat or batch is a file that contains a compiled list or a batch of commands that can run the commands in chronological order so you don't have any error and it makes the installation data redundant. It's really a helpful tool that automates workflow.
Click to expand...
Click to collapse
Alright, I was able to flash the GSI ROM, but it didn't work. My phone thinks the OS is corrupted. I think my only choice now is to go back to my stock ROM. I tried to flash the super partition but running
Code:
./fastboot flash super ../super.img_sparsechunk.0
and it did this through sparsechunk 26. Then I rebooted and I still have no OS.
Now this stock ROM does not have a .bat file, but it does have flashfile.xml. Is there any way I can use this to automate the flashing process? At this point, I'm thinking I'm going to have to flash every partition.
Related question: In the flashfile, it specifies partitions as logo_a, vbmeta_system_a, etc. But when I run '
fastboot getvar current-slot' it says my current slot is 'b'. So should I replace every instance of _a with _b?

Categories

Resources