[General SlimRoms Discussion] dankoman:
do you know how to use apktool? i can show you how to do it yourself. i'm not going to do it every time, but will be happy to show you how. it's really not all that involved.

first go to apkmirror.com and grab the latest play store apk. save it as Phonesky.apk.

apktool d Phonesky.apk

will decompile the apk.

grep -r "restriction=" ./Phonesky/smali/com/google/android/finsky/utils

will lead you to the method you need to modify (it's always somewhere in that directory). in this case, it's Phonesky\smali\com\google\android\finsky\utils\cy.smali, and grep will show you that it occurs twice - lines 333 and 360.

now let's take a look at that file:

nano Phonesky\smali\com\google\android\finsky\utils\cy.smali

if you go down to lines 333 and 360, you'll see that they both occur within the same method (methods start with ".method" and end with ".end method"). we're going to modify this method, which starts at line 224. here's what the method looks like now:

.method public static a(Lcom/google/android/finsky/api/model/Document;Lcom/google/android/finsky/api/model/DfeToc;Lcom/google/android/finsky/g/p;)Z
.locals 7

.prologue
[COLOR="Red"] const/4 v6, 0x2

const/4 v2, 0x1

const/4 v0, 0x0

.line 48
.line 2190
iget-object v1, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget v1, v1, Lcom/google/android/finsky/protos/gt;->g:I

.line 48
if-eqz v1, :cond_2

.line 49
if-eqz p1, :cond_1

.line 3190
iget-object v1, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget v1, v1, Lcom/google/android/finsky/protos/gt;->g:I

.line 50
invoke-virtual {p1, v1}, Lcom/google/android/finsky/api/model/DfeToc;->a(I)Lcom/google/android/finsky/protos/pp;

move-result-object v1

.line 51
if-nez v1, :cond_2

.line 52
const-string v1, "Corpus for %s is not available."

new-array v2, v2, [Ljava/lang/Object;

.line 4176
iget-object v3, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget-object v3, v3, Lcom/google/android/finsky/protos/gt;->a:Ljava/lang/String;

.line 52
aput-object v3, v2, v0

invoke-static {v1, v2}, Lcom/google/android/finsky/utils/FinskyLog;->a(Ljava/lang/String;[Ljava/lang/Object;)V

.line 71
:cond_0
:goto_0
return v0

.line 4190
:cond_1
iget-object v1, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget v1, v1, Lcom/google/android/finsky/protos/gt;->g:I

.line 55
const/4 v3, 0x3

if-ne v1, v3, :cond_0

.line 61
:cond_2
invoke-virtual {p0}, Lcom/google/android/finsky/api/model/Document;->Q()I

move-result v4

.line 62
if-ne v4, v2, :cond_5

move v1, v2

.line 63
:goto_1
if-nez v1, :cond_3

.line 4972
iget-object v3, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget-object v3, v3, Lcom/google/android/finsky/protos/gt;->v:Lcom/google/android/finsky/protos/hp;

if-eqz v3, :cond_6

iget-object v3, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget-object v3, v3, Lcom/google/android/finsky/protos/gt;->v:Lcom/google/android/finsky/protos/hp;

iget-boolean v3, v3, Lcom/google/android/finsky/protos/hp;->d:Z

if-eqz v3, :cond_6

move v3, v2

.line 63
:goto_2
if-eqz v3, :cond_3

invoke-static {p0, p2}, Lcom/google/android/finsky/utils/cy;->a(Lcom/google/android/finsky/api/model/Document;Lcom/google/android/finsky/g/p;)Z

move-result v3

if-eqz v3, :cond_3

.line 64
const-string v1, "%s available because owned, overriding [restriction=%d]."

new-array v3, v6, [Ljava/lang/Object;

.line 5176
iget-object v5, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget-object v5, v5, Lcom/google/android/finsky/protos/gt;->a:Ljava/lang/String;

.line 64
aput-object v5, v3, v0

invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

move-result-object v5

aput-object v5, v3, v2

invoke-static {v1, v3}, Lcom/google/android/finsky/utils/FinskyLog;->a(Ljava/lang/String;[Ljava/lang/Object;)V

move v1, v2

.line 68
:cond_3
if-nez v1, :cond_4

.line 69
const-string v3, "%s not available [restriction=%d]."

new-array v5, v6, [Ljava/lang/Object;

.line 6176
iget-object v6, p0, Lcom/google/android/finsky/api/model/Document;->a:Lcom/google/android/finsky/protos/gt;

iget-object v6, v6, Lcom/google/android/finsky/protos/gt;->a:Ljava/lang/String;

.line 69
aput-object v6, v5, v0

invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

move-result-object v0

aput-object v0, v5, v2

invoke-static {v3, v5}, Lcom/google/android/finsky/utils/FinskyLog;->a(Ljava/lang/String;[Ljava/lang/Object;)V

:cond_4
move v0, v1

.line 71
goto :goto_0

:cond_5
move v1, v0

.line 62
goto :goto_1

:cond_6
move v3, v0

.line 4972
goto :goto_2[/COLOR]
.end method

we're going to get rid of most of it. delete all the red text between ".prologue" and ".end method"

now we're going to add our own code after ".prologue":

.method public static a(Lcom/google/android/finsky/api/model/Document;Lcom/google/android/finsky/api/model/DfeToc;Lcom/google/android/finsky/g/p;)Z
.locals 7

.prologue

[COLOR="orange"] const/4 v0, 0x1

return v0[/COLOR]
.end method

the first new line assigns literal 4-bit constant 0x1 (which equates to true for our purposes) to object v0, and the second new line returns it for the method.

save your changes, and recompile:

apktool b -c Phonesky

your shiny new apk is output to Phonesky/dist/Phonesky.apk. you can push it to your device now.