本文目录一览:
Service如何添加安装权限白名单
先介绍Android中常用的几种安装方式,好针清汪对这几种御轮进行修改
1、 直接调用安装接口。
Uri mPackageURI = Uri.fromFile(new File(Environment.getExternalStorageDirectory() + apkName));int installFlags = 0;
PackageManager pm = getPackageManager();try{
PackageInfo pi = pm.getPackageInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES); if(pi != null) {
installFlags |= PackageManager.REPLACE_EXISTING_PACKAGE;
}
}catch (NameNotFoundException e){}
PackageInstallObserver observer = new PackageInstallObserver();
pm.installPackage(mPackageURI, observer, installFlags);1234567891011121314
这种修改需要直接修改packageManagerService。对应下面的第一种方法。
2、通过Intent机制,调用packageInstaller进行安装。
String fileName = Environment.getExternalStorageDirectory() + apkName;
Uri uri = Uri.fromFile(new File(fileName));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri, application/vnd.android.package-archive");
startActivity(intent);12345
因为应用是通过packageInstaller进行安装的,相当于隔了一层代理,所以在packageManagerService并无法判断正在调用安装的是哪个app,只能在packageInstaller中进行修改,参考下面的第二中方法。
3、通过命令进行安装 pm install,参考第三种方法修改。
修改方法:
1、packageManagerService修改
packageManagerService的修改,我们在其中添加几个接口及代码来控制apk安装。
1)增加以下函数:
/*add for installer white list*/
private boolean isInstallerEnable(String packagename){
ArrayListString whiteListApp = new ArrayListString(); try{
BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("/system/镇正信etc/WhiteListAppFilter.properties"))); String line =""; while ((line = br.readLine()) != null){
whiteListApp.add(line);
}
br.close();
}catch(java.io.FileNotFoundException ex){ return false;
}catch(java.io.IOException ex){ return false;
}
IteratorString it = whiteListApp.iterator(); while (it.hasNext()) { String whitelisItem = it.next(); if (whitelisItem.equals(packagename)) { return true;
}
} return false;
}12345678910111213141516171819202122232425262728293031
isInstallerEnable函数会去读取白名单文件/system/etc/WhiteListAppFilter.properties,然后和我们传进来的包名进行匹配,在白名单中返回true,其他情况均返回false。
2)获取调用的包名
这个可以在installPackageWithVerificationAndEncryption函数中来获取,
if (uid == Process.SHELL_UID || uid == 0) {
if (DEBUG_INSTALL) {
Slog.v(TAG, "Install from ADB");
}
filteredFlags = flags | PackageManager.INSTALL_FROM_ADB;
} else {
filteredFlags = flags ~PackageManager.INSTALL_FROM_ADB;
}
verificationParams.setInstallerUid(uid);
//add for installer white list
mCallingApp = mContext.getPackageManager().getNameForUid(uid);
Log.d(TAG, "!!!!!!!!!!!!!callingApp = " + mCallingApp);
//end
final Message msg = mHandler.obtainMessage(INIT_COPY);
msg.obj = new InstallParams(packageURI, observer, filteredFlags, installerPackageName,
verificationParams, encryptionParams, user);
mHandler.sendMessage(msg);123456789101112131415161718192021
接下来要在installPackageLI函数对调用安装的apk进行匹配,判断是否在白名单中,如果不在的话则提示错误,错误码是-xxx(自己定义),这个错误码会给packageInstaller,packageInstaller中需要做什么,就由自己定义了。
//add for installer white list
boolean caninstall =false; if(mCallingApp != null isInstallerEnable(mCallingApp)){
caninstall = true;
} if(!caninstall){
Toast.makeText(mContext, R.string.install_error, Toast.LENGTH_LONG).show();
res.returnCode = -xxx; return;
}
//end if (DEBUG_INSTALL) Slog.d(TAG, "installPackageLI: path=" + tmpPackageFile);
// Retrieve PackageSettings and parse package
int parseFlags = mDefParseFlags | PackageParser.PARSE_CHATTY
| (forwardLocked ? PackageParser.PARSE_FORWARD_LOCK : 0)
| (onSd ? PackageParser.PARSE_ON_SDCARD : 0); ...省略12345678910111213141516171819
3)
/system/etc/WhiteListAppFilter.properties内容如下,在编译时可以在mk中修改拷贝到etc目录下,例如下面就是允许这三个包名有安装权限。
com.xxx.xxx1
com.xxx.xxx2
com.xxx.xxx3
2、packageInstaller的修改
还是参考packageManagerService的修改,增加isInstallerEnable函数,去读取白名单文件/system/etc/WhiteListAppFilter.properties,然后进行包名匹配,在白名单中返回true,其他情况均返回false。
我们在packageInstaller的PackageInstallerActivity.java中增加以下修改// add for installer enable/disable ,不在白名单中的app,会直接提示不允许安装后退出。
protected void onCreate(Bundle icicle) { super.onCreate(icicle); // get intent information
final Intent intent = getIntent();
mPackageURI = intent.getData();
mPm = getPackageManager(); final int uid = getOriginatingUid(intent);
String callingApp = mPm.getNameForUid(uid); final File sourceFile = new File(mPackageURI.getPath());
PackageParser.Package parsed = PackageUtil.getPackageInfo(sourceFile);
mPkgInfo = PackageParser.generatePackageInfo(parsed, null,
PackageManager.GET_PERMISSIONS, 0, 0, null, new PackageUserState()); // add for installer enable/disable
if (!isInstallerEnable(callingApp)) {
Toast.makeText(this, R.string.install_not_allow, Toast.LENGTH_LONG).show(); this.finish();
}
mOriginatingURI = intent.getParcelableExtra(Intent.EXTRA_ORIGINATING_URI);
...省略12345678910111213141516171819202122
3、pm install的修改
禁止pm install,因为有些APK安装竟然是调用pm install命令去安装的。
修改要在pm.java修改,修改方法和上面基本一致。
可以看到,pm install其实调用的是run再去判断参数。
public static void main(String[] args) {
new Pm().run(args);
}
public void run(String[] args) { ...省略 if ("install".equals(op)) {
runInstall(); return;
} ...省略1234567891011
那我们要添加的话,先获取app名,再和packageManagerService一样,增加isInstallerEnable去判断是不是要调用runInstall()就OK了。
String callingApp = ""; try {
callingApp = mPm.getNameForUid(Binder.getCallingUid());
} catch(RemoteException re) {
Log.e("Pm", Log.getStackTraceString(new Throwable()));
}123456
狂求表示心情的英语形容词
A
aback
abandoned
abashed
abducted
abhorred
abject
able
abnormal
abominable
about
abrasive
absent-minded
absolved
absorbed
absorbent
abstemious
abstract
abstracted
abused
abusive
abysmal
abyssal
accelerated
acceptable
accepted
accepting
accessible
accident-prone
acclaimed
acclimated
accommodated
accommodating
accomplished
accosted
accosting
accountable
accusatory
accused
accusing
acerbic
aching
acknowledged
acquiescent
acquisitive
acrimonious
activated
active
actualized
adamant
addicted
adept
adequate
admirable
admiration
admired
admiring
admonished
adorable
adored
adoring
adrift advanced
adventurous
adverse
affable
affected
affection
affectionate
affirmed
afflicted
affluent
affronted
afraid
against
agape
aggravated
aggressive
aghast
agitated
aglow
agnostic
agog
agonized
agony
agoraphobic
agreeable
ahead
aimless
airy
alarmed
alert
alienated
alive
allied
allured
alluring
alone
aloof
altruistic
amazed
amazing
ambiguous
ambitious
ambivalent
ambushed
amenable
amiable
amorous
amused
amusing
analyzed
anarchistic
anesthetized
angry
anguish
anguished
anhedonic
animated
annihilated
annoyed
annoying
anonymous
antagonistic
antagonized
anticipation
antiquated
antisocial
antsy
anxiety
anxious
apart
apathetic
apologetic
appalled
appealed
appealing
appeased
applauded
appraised
appreciated
appreciative
apprehension
apprehensive
approachable
appropriate
approved
approved of
archaic
ardent
argued with
argumentative
aristocratic
aroused
arrogant
artful
articulate
artificial
artistic
artless
ascetic
ashamed
asinine
asocial
assaulted
assertive
assessed
assuaged
assured
astonished
astounded
at ease
at home
at peace
at peril
at risk
at war
atrophied
attached
attacked
attentive
attracted
attractive
audacious
austere
authentic
authoritarian
authoritative
autocratic
available
avaricious
avid
avoided
awake
awakened
aware
awe
awed
awesome
awestruck
awful
awkward
B
babied
backward
bad
badgered
baffled
baited
balanced
bamboozled
banished
bankrupt
banned
bantered
bare
barraged
barred
barren
bashful
battered
battle-weary
battle-worn
bearable
beaten
beaten down
beatific
beautiful
beckoned
bedazzled
bedeviled
befriended
befuddled
beguiled
behind
beholden
beleaguered
belittled
belligerent
belonging
beloved
bemused
benevolent
bent
berated
bereaved
bereft
beseeched
beset
besieged
besmirched
bestial
betrayed
better
bewildered
bewitched
bewitching
biased
big
bitchy
bitter
blackmailed
blah
blamed
blaming
blank
blasé‚
blasphemous
blasted
bleak
blind
bliss
blissful
blithe
blocked
blown away
blue
boastful
bogus
boiling
boisterous
bold
bombastic
bonkers
bored
boring
bossed-around
bossy
bothered
bothersome
bought
bound
bound-up
boxed-in
braced
brainwashed
brash
brave
brazen
breathless
breezy
bridled
bright
brilliant
brisk
bristling
broken
broken-down
broken-up
brooding
bruised
brushed-off
brutal
bubbly
bugged
buggered
bullied
bullish
bullshitted
bummed
bummed out
buoyant
burdened
burdensome
buried
burned
burned-out
burned-up
bursting
bushed
bypassed
C
caged
cajoled
calculating
callous
callow
calm
calmed down
canny
cantankerous
capable
capricious
captious
captivated
captured
cared about
cared for
carefree
careful
careless
caring
carried away
cast
cast about
cast out
castigated
categorized
caught
cautious
cavalier
censored
censured
centered
certain
chafed
chagrined
chained
challenged
challenging
changed
changing
chaotic
charged
charismatic
charitable
charmed
charming
chased
chaste
chastised
chatty
cheap
cheapened
cheated
cheated on
cheeky
cheerful
cheerless
cheery
cherished
chic
chicken
chided
childish
childless
childlike
chipper
chivalrous
choked
choked-up
chosen
churlish
circumspect
circumvented
civil
civilized
classy
claustrophobic
clean
cleansed
clear
clear-headed
clenched
clever
close
closed
closed in
closed-minded
clouded
clueless
clumsy
coarse
cocky
coddled
coerced
cold
cold-blooded
cold-hearted
collapsed
collapsing
collected
combative
comfortable
comforted
comfy
committed
common
commonplace
communicative
comparative
compared
compassionate
compatible
compelled
competent
competitive
complacent
complete
complex
compliant
complicated
complementary
complimented
complimentary
composed
compressed
compulsive
conceited
concentrated
concerned
condemned
condescended to
condescending
confident
confined
confirmed
confirming
conflicted
conforming
confused
congenial
connected
conned
conniving
conquered
conscientious
consecrated
conservative
considerate
considered
consistent
consoled
consoling
conspicuous
constrained
constricted
constructive
consumed
contained
contaminated
contemplative
contempt
contemptible
contemptuous
content
contented
contentious
contrite
controlled
controlling
convenient
conventional
convicted
convinced
convincing
cool
cooperative
cordial
cornered
correct
corrupt
corrupted
counterfeit
counter-productive
courageous
courteous
courtly
coveted
covetous
cowardly
coy
cozy
crabby
crafty
cranky
crappy
crass
craving
crazed
crazy
creative
credulous
crestfallen
criminal
crippled
critical
criticized
cross
crossed
cross-examined
crotchety
crowded
crucified
crude
cruel
crushed
cryptic
cuckoo
cuddled
cuddly
culled
culpable
cultivated
cultured
cunning
curious
cursed
cut
cut-down
cute
cut-off
cynical
D
daffy
dainty
damaged
damned
dangerous
dared
daring
dark
dashed
dashing
daunted
dauntless
dazed
dead
dear
debased
debated
debauched
debilitated
debonair
deceitful
deceived
decent
deceptive
decided
decimated
decrepit
dedicated
defamed
defeated
defective
defenseless
defensive
deferent
defiant
deficient
defiled
definite
deflated
deformed
degenerate
degraded
dehumanized
dejected
delicate
delighted
delightful
delinquent
delirious
delivered
deluded
demanding
demeaned
demented
demoralized
demoted
demotivated
demure
denatured
denigrated
denounced
denurtured
dependable
dependent
depleted
deported
depraved
deprecated
depreciated
depressed
deprived
derailed
derided
desecrated
deserted
deserving
desirable
desire
desired
desirous
desolate
despair
despairing
desperate
despicable
despised
despondent
destroyed
destructive
detached
deteriorated
determined
detest
detestable
detested
devastated
deviant
devious
devoid
devoted
devoured
diagnosed
dictated to
dictatorial
different
difficult
diffident
dignified
diligent
dim
diminished
diplomatic
direct
directionless
dirty
disabled
disaffected
disagreeable
disappointed
disappointing
disapproved of
disapproving
disbelieved
disbelieving
discarded
disciplined
discombobulated
disconcerted
disconnected
disconsolate
discontent
discontented
discounted
discouraged
discredited
discreet
disdain
disdained
disdainful
disempowered
disenchanted
disenfranchised
disentangled
disfavored
disgraced
disgruntled
disgust
disgusted
disgusting
disharmonious
disheartened
disheveled
dishonest
dishonorable
dishonored
disillusioned
disinclined
disingenuous
disintegritous *
disinterested
disjointed
dislike
disliked
dislocated
dislodged
disloyal
dismal
dismayed
dismissed
dismissive
disobedient
disobeyed
disorderly
disorganized
disoriented
disowned
disparaged
dispassionate
dispensable
dispirited
displaced
displeased
disposable
dispossessed
disputed
disregarded
disrespected
disruptive
dissatisfied
dissected
dissed
dissident
dissociated
distant
distorted
distracted
distraught
distressed
distrusted
distrustful
disturbed
diverted
divided
divorced
docile
dogged
dogmatic
doleful
domestic
domesticated
dominant
dominated
dominating
domineered
domineering
done
doomed
double-crossed
doubted
doubtful
dowdy
down
downcast
downhearted
downtrodden
drained
dramatic
drawn away
drawn back
drawn in
drawn toward
dread
dreaded
dreadful
dreamy
dreary
dried-up
driven
droopy
dropped
drowning
drubbed
drummed
dubious
dull
dumb
dumbfounded
dumped
dumped on
duped
dutiful
dwarfed
dynamic
E
eager
early
earnest
earthy
eased
easy
easy-going
ebullient
eccentric
eclectic
eclipsed
ecstatic
edgy
edified
edifying
educated
effaced
effective
effeminate
effervescent
efficacious
efficient
effusive
egocentric
egotistic
egotistical
elastic
elated
elderly
electric
electrified
elegant
elevated
elitist
eloquent
elusive
emancipated
emasculated
embarrassed
embittered
eminent
emmerlinged
emotional
emotionless
emotive
empathetic
empathic
emphatic
empowered
empty
enabled
enamored
enchanted
enclosed
encompassed
encouraged
encroached upon
encumbered
endangered
energetic
energized
enervated
engaged
engrossed
enhanced
enigmatic
enjoyment
enlightened
enmeshed
ennobled
enraged
enraptured
enriched
enslaved
entangled
enterprising
entertained
enthralled
enthusiastic
enticed
entitled
entombed
entrapped
entrenched
entrepreneurial
entrusted
envied
envious
equipped
equitable
eradicated
erasable
erased
eros
essential
established
esteemed
estranged
ethereal
euphoric
evaded
evaluated
evasive
evicted
evil
eviscerated
exacerbated
exacerbating
examined
exasperated
exasperating
excellent
excessive
excitable
excited
excluded
excoriated
exculpated
execrated
exempt
exempted
exhausted
exhilarated
exiled
exonerated
exorcised
exotic
expansive
expectant
experienced
experimental
exploitative
exploited
explosive
exposed
expressive
expunged
extraordinary
extravagant
extricated
extroverted
exuberant
exultant
Emmerlinged: A new word I made up when Rob Emmerling was trying to discredit me in April 2005. I would define it as "being misrepresented by someone who feels threatened by you in an attempt to discredit you so as to protect that person's own interests."
F
fabulous
facetious
factious
failful *
faint
fainthearted
fair
faithful
fake
fallen
fallible
fallow
false
falsely
falsely accused
faltering
famished
famous
fanatical
fanciful
fantabulous
fantasizing
fantastic
farcical
fascinated
fascinating
fascination
fashionable
fast
fastidious
fatalistic
fathered
fatherless
fatigued
fatuous
favored
fawned
fawned over
fawning
fear
feared
fearful
fearless
fed up
feeble
feeling
feisty
felicitous
feminine
fermenting
ferocious
fervent
festive
fettered
fickle
fidgety
fiendish
fierce
fiery
filthy
fine
finicky
finished
fired
firm
first
first-class
first-rate
fit
fixated
flabbergasted
flagellated
flaky
flamboyant
flammable
flappable
flat
flattered
flawed
fledgling
fleeced
flexible
flighty
flippant
flipped-out
flirtatious
floored
floundering
flourishing
flush
flustered
fluttering
focused
focussed
foiled
followed
fond
foolhardy
foolish
forbidden
forced
forceful
foreign
fore-sighted
forgetful
forgettable
forgivable
forgiven
forgiving
forgotten
forlorn
formed
formidable
forsaken
fortified
fortunate
forward
fouled-up
fractured
fragile
fragmented
frail
framed
frank
frantic
fraudulent
frazzled
free
frenetic
frenzied
fresh
fretful
fretting
friendless
friendly
frightened
frigid
frisky
frivolous
frolicsome
frowning
frugal
frustrated
fulfilled
full
fuming
fun
funky
funloving
funny
furious
fury
fussy
futile
G
gallant
galled
game
gauche
gaudy
gawky
gay
generous
genial
gentle
genuine
giddy
gifted
giggly
gilded
giving
glad
glamorous
gleeful
glib
gloomy
glorious
glowing
glum
gluttonous
goaded
good
good-looking
good-natured
gorgeous
graceful
gracious
graded
grand
grandiose
granted
grateful
gratified
grave
great
greedy
gregarious
grief
grief-stricken
grieved
grieving
grim
groovy
gross
grossed-out
grotesque
grouchy
grounded
groveling
grumpy
guarded
guided
guilt-free
guilt-tripped
guiltless
guilty
gullible
gushy
gutless
gutsy
gutted
gypped
H
haggard
haggled
hallowed
hampered
handicapped
hapless
happy
happy-go-lucky
harangued
harassed
hard
hardened
hard-headed
hard-hearted
hard-pressed
hard-working
hardy
harmless
harmonious
harnessed
harried
hassled
hasty
hate
hated
hateful
hatred
haughty
haunted
headstrong
heady
healed
health-conscious
healthy
heard
heartbroken
heartened
heartful
heartless
heartsick
heart-to-heart
hearty
heavy
heavy-hearted
heckled
heeded
held dear
helped
helpful
helpless
henpecked
herded
heroic
hesitant
hideous
high
high-spirited
hilarious
hindered
hoaxed
hollow
homely
homesick
honest
honorable
honored
hoodwinked
hopeful
hopeless
horrible
horrified
horror
horror-stricken
hospitable
hostile
hot-headed
hounded
huge
humane
humble
humbled
humiliated
humored
humorous
hung up
hungry
hunted
hurried
hurt
hustled
hyped-up
hyper
hyperactive
hypervigilent
hypnotized
hypocritical
hysterical
I
idealistic
idiosyncratic
idiotic
idolized
ignorant
ignored
ill
ill at ease
ill-humored
illicit
ill-tempered
imaginative
imbalanced
immaculate
immature
immobile
immobilized
immodest
immoral
immortal
immune
impaired
impartial
impassioned
impassive
impatient
impeccable
impeded
impelled
imperfect
imperiled
imperious
impermanent
impermeable
impertinent
imperturbable
impervious
impetuous
impious
implacable
impolite
important
imposed-upon
imposing
impotent
impressed
imprisoned
impudent
impugned
impulsive
impure
in
in a huff
in a quandary
in a stew
in control
in despair
in doubt
in fear
in harmony
in pain
in the dumps
in the way
in touch
in tune
inaccessible
inadequate
inappropriate
inattentive
incapable
incapacitated
incensed
incoherent
incommunicative
incompetent
incomplete
inconclusive
inconsiderate
inconsistent
inconsolable
inconspicuous
inconvenienced
inconvenient
incorrect
incorrigible
incredible
incredulous
inculcated
indebted
indecent
indecisive
indefinite
independent
indescribable
indestructible
indicted
indifferent
indignant
indirect
indiscreet
indoctrinated
indolent
indulgent
industrious
inebriated
ineffective
inept
infallible
infamous
infantile
infantilized
infatuated
infected
inferior
infirm
inflamed
inflammatory
inflated
inflexible
influenced
influential
informed
infuriated
infused
ingenious
ingenuous
ingratiated
ingratiating
inhibited
inhospitable
inhumane
inimical
injured
innocent
innovative
inquiring
inquisitive
insane
insatiable
insecure
insensitive
inside-out
insightful
insignificant
insincere
insistent
insolent
insouciant
inspired
instilled
instructive
insufficient
insulted
insulting
insurgent
intact
integritous *
intellectual
intelligent
intense
intent
interested
interesting
interfered with
interfering
interrelated
interrogated
interrupted
intimate
intimidated
intimidating
intolerant
intrepid
intrigued
introspective
introverted
intruded upon
intrusive
intuitive
invalidated
invalidating
inventive
invigorated
invisible
invited
inviting
involved
invulnerable
irascible
irate
irked
irrational
irreligious
irreproachable
irresistible
irresolute
irresponsible
irreverent
irritable
irritated
isolated
J
jaded
jaundiced
jaunty
jealous
jealousy
jeered
jeopardized
jerked around
jilted
jinxed
jittery
jocular
jolly
jolted
jostled
jovial
joyful
joyless
joyous
jubilant
judged
judgmental
judicious
juggled
jumpy
just
justified
K
keen
kept
kept away
kept out
kicked
kicked around
kidded
kind
kindhearted
kindly
kinky
knackered
knocked
knocked down
knocked out
knowledgeable
L
labeled
lackadaisical
lacking
lackluster
lagging behind
laid-back
lambasted
lame
lamentful *
lamenting
languid
languishing
lascivious
late
laughed at
lavished
lax
lazy
leaned on
leaning
lecherous
lectured to
leery
left out
legitimate
let down
lethargic
level-headed
lewd
liable
liberal
liberated
licentious
lied about
lied to
lifeless
lifted
light
light-hearted
likable
liked
limited
limp
lionhearted
listened to
listless
lively
livid
loath
loathed
loathsome
logical
lonely
lonesome
longing
loopy
loose
loosed
lorded over
lost
loud
lousy
lovable
love
loved
loveless
lovely
loving
low
lowly
low-spirited
loyal
luckless
lucky
ludicrous
luminous
lured
luring
lust
lustful
lusty
lynched
M
macho
mad
made fun of
magical
magnificent
maimed
maladjusted
malcontent
malevolent
malicious
malignant
maligned
manageable
managed
managerial
mangled
maniacal
manic
manipulable
manipulated
manipulative
manly
marauding
marauding
marginalized
married
marvelous
masochistic
masterful
materialistic
maternal
mature
maudlin
meager
mean
mechanical
medicated
mediocre
meditative
meek
melancholic
melancholy
melded
mellow
melodramatic
menaced
menacing
merciful
merry
mesmerized
messy
methodical
meticulous
micro-managed
miffed
mighty
mindful
minimized
mirthful
misanthropic
mischievous
misdiagnosed
miserable
miserly
misgiving
misinformed
misinterpreted
misled
misrepresented
mistaken
mistreated
mistrusted
mistrustful
misunderstood
misused
mixed-up
mobilized
mocked
mocking
modern
modest
molded
molested
mollified
monitored
monopolized
moody
moping
moral
moralistic
N
nagged
nailed
naive
naked
nameless
nannied
narcissistic
narrow-minded
nasty
natural
naughty
nauseated
neat
needed
needled
needy
negated
negative
neglected
negligent
nervous
nervy
nestled
nettled
neurotic
neutral
nice
niggardly
nihilistic
nit-picked
nit-picking
nit-picky
noble
noisy
nomadic
nonchalant
noncommittal
nonconforming
nonplused
normal
nosey
nostalgic
nosey
nothing
noticed
nourished
nourishing
numb
numbed
nursed
nurturing
nuts
nutty
O
obedient
obeyed
objectified *
obligated
obliged
obliging
obliterated
oblivious
obnoxious
obscene
obscured
observant
observed
obsessed
obsessive
obstinate
obstructed
obvious
odd
off
off the hook
offended
offensive
officious
okay
old
old-fashioned
omnipotent
on
on call
on display
on time
one-upped
open
open-minded
opinionated
opportunistic
opposed
oppressed
optimistic
opulent
orderly
organized
ornery
orphaned
ostentatious
ostracized
ousted
out of balance
out of control
out of place
out of sorts
out of touch
out of tune
outdone
outgoing
outlandish
outnumbered
outraged
outrageous
outranked
outspoken
over
over-done
over-protected
over-ruled
over-controlled
overanxious
overbearing
overcome
overdrawn
overestimated
overjoyed
overloaded
overlooked
overpowered
oversensitive
over-simplified
overwhelmed
overworked
overwrought
owed
owing
owned
owning
owning
P
pacified
paid off
pain
pained
paired
paired-off
paired-up
pampered
panic
panicked
panicky
paralyzed
paranoid
pardoned
parsimonious
partial
passed by
passed off
passed over
passionate
passive
pastoral
paternal
pathetic
patient
patronized
peaceful
pedantic
pedestalized *
pedestrian
peeved
peevish
pell-mell
penetrable
penetrated
pensive
perceived
perceptive
peremptory
perfect